作者回复: 不需要,对于服务器挂了后导致的超时,默认是自动开启next upstream功能的,参见proxy_next_upstream指令的默认值:
Default:proxy_next_upstream error timeout;
作者回复: Linux上设置最大描述符数量,有三个维度:全局、用户、进程,其中自上而下的关系中,进程自然不能超过用户和全局的限制。如果超过了,会以最小的为准。请参见第124课。
作者回复: 是的
作者回复: 1、抓包看下,发给upstream的HTTP请求中,X-Forwarded-For:的值是什么,TCP的source ip address是什么;
2、在upstream上的set_real_ip_from必须匹配source ip address,才能把X-Forwarded-For中的IP作为$remote_addr取出来
作者回复: 联想不出这两个数字的出处,能再详细点吗?
作者回复: 如果error和access日志为空,说明server {}块未进入,原因很可能是被其他server {}匹配中了curl请求。除了经验式解决外,你可以尝试打开全部debug日志 (包括http{}下的),看看这条请求被哪个server/location匹配中处理了。
作者回复: 是的,除非某台后端服务器宕机