我正在尝试管理在配置为负载均衡器的nginx plus服务器后运行的服务器的部署。应用程序服务器使用proxy_pass指令从nginx发送流量,我想要做的是默认情况下将流量引导到一个上游,但是当我们部署到备用实例时,将其用于测试;我试图通过让开发人员在浏览器中设置标题来选择这个,然后nginx会查找并为相关代理设置一个变量。
似乎一切都是明智的,但它根本不起作用 - 我不确定我是否误解了它是如何工作的,但它看起来确实很奇怪。
上游配置为
<select onchange="getNewFunction($('option:selected', this))" name="action-grid">
<option selected>Select</option>
<option value="2">Second</option>
</select>
<script type="text/javascript">
function getNewFunction(value) {
alert(value.text());
}
</script>
然后此代码位于/ block。
upstream site-cluster {
zone site 64k;
least_conn;
server 10.0.6.100:80 route=a slow_start=30s;
server 10.0.7.100:80 route=b slow_start=30s;
sticky route $route_cookie $route_uri;
}
upstream site-cluster2 {
zone site 64k;
least_conn;
server 10.0.6.30:80 route=a slow_start=30s;
server 10.0.7.187:80 route=b slow_start=30s;
sticky route $route_cookie $route_uri;
}
无论我是否设置了标头,它始终是发送流量的默认服务器。
有什么想法吗?
答案 0 :(得分:0)
map指令应该在http上下文中而不是位置:
Syntax: map string $variable { ... }
Default: —
Context: http
其余看起来合情合理,对我有用。