Rya*_*yan 2 nginx nginx-config
我正在尝试使用以下配置运行nginx最新版本,但我得到了 nginx: [emerg] invalid parameter "route=bloomberg" in /etc/nginx/nginx.conf:13
docker run --rm -ti -v root_to_local_nginx_directory:/etc/nginx:ro -p 3080:80 --name=mynginx --entrypoint nginx nginx
Run Code Online (Sandbox Code Playgroud)
# nginx.conf file inside root_to_local_nginx_directory
http {
map $cookie_route $route_from_cookie {
~.(?P<version>w+)$ $route;
}
split_clients "${remote_addr}" $random_route {
50% server bloomberg.com route=bloomberg;
* server yahoo.com route=yahoo;
}
upstream backend {
zone backend 64k;
server bloomberg.com route=bloomberg;
server yahoo.com route=yahoo;
sticky route $route_from_cookie $randomroute;
}
server {
# ...
listen 80;
location / {
proxy_set_header Host $host;
proxy_pass http://backend;
}
}
}
Run Code Online (Sandbox Code Playgroud)
为什么是这样?根据文档,这应该是正确的http://nginx.org/en/docs/http/ngx_http_upstream_module.html#upstream。
该指令在上下文中的route=string
参数被认为是企业级功能,因此只能通过商业订阅获得,在NGINX Plus中,而在OSS NGINX中不可用。(如果您仔细阅读文档,您会发现它与其他参数归为一个单独的“可作为我们的商业订阅的一部分”小节。)server
upstream
另外,您还试图在split_clients
上下文中使用一些类似的“服务器”参数,就好像它们是nginx解释的实际指令一样,即使在该上下文中所有内容都应为字符串文字。尚不清楚该部分是否引起任何错误,但即使不是,也很难在配置中引入这种混淆。
参考文献:
http://nginx.org/en/docs/http/ngx_http_upstream_module.html#server
http://nginx.org/zh_CN/docs/http/ngx_http_split_clients_module.html#split_clients
归档时间: |
|
查看次数: |
574 次 |
最近记录: |