我一直在使用2台服务器来学习和testing各种NGINX安装的proxy_pass(包括自定义编译和标准安装)。 我遇到的问题涉及到“err_too_many_redirects”; 具体来说,有很多清除caching的参考(我使用Chrome),但这并不能解决问题。 我也看过正则expression式希望find任何错误configuration,但到目前为止,没有任何东西(来自RTFM)向我显示任何暗示错误configuration的东西。
主服务器只有一个域,标准安装,下面只提到一个附加的“服务器指令”。 辅助服务器也有一个完全不同的域名的标准安装,在本地解决,而不是从外部请求(即“主机”文件configuration)。
server { server_name my2ndweb.com *.my2ndweb.com; location ~* { proxy_pass http://xxx.xxx.xxx.xxx; } ... }
我也用“/”而不是“〜*”修改了位置指令,还修改了“proxy_pass”语句的FQDN(我在某处读取hosts文件可以parsing它,而不是redirect到本地地址.. .did什么也没有)。
无论如何,如果我使用单个服务器,只是将不同的域放置在不同的文件夹结构中,这一切都能正常工作,但是如果一台服务器发生故障,则会失败以实现故障切换选项的目的…-我没有configuration故障切换,只是考虑它。
注意:日志中没有其他错误关于redirect!
k / r axetone
回答:
我犯了一个错误:从nginx.conf文件path语句中删除通配符“*”,该语句指向用于站点configuration的目录(或者通配符DIRECTORIES)…因此,我在重载的时候指出一个订单项错误实际上是在其他的conf文件之一,而不是我的“默认”conf文件。
傻愚蠢的错误!
解决scheme:将通配符“*”replace为nginx.conf中的“include ..”path语句的末尾,而仅使用实际的文件夹/文件名。
例如:include /etc/nginx/sites-enabled/*.conf;
replace为:include / etc / nginx / sites-enabled / default; #或任何你的文件名是。