正如标题所示,我们的网络服务器上出现了一个奇怪的问题。
我们在每个 Web 盒上都有许多配置(虚拟主机),除一个配置外,其他所有配置都运行正常。
经过一段时间(几天或几周)后,该主机开始超时并返回 502 响应。
nginx -s reload
配置测试返回正常,但唯一的解决方法是在它再次开始正确响应时运行。
细节:
nginx 1.10.0
Ubuntu 12.04
nginx 总共服务 8 个主机/配置。
下面讨论的配置可能会引起一些问题。
limit_req_zone $binary_remote_addr zone=analytics:100m rate=10r/s;
proxy_cache_path /var/www/analytics-cache levels=1:2 keys_zone=analytics:10m max_size=10g inactive=1d;
proxy_temp_path /var/www/analytics-cache/tmp;
server {
listen 80;
server_name analytics.domain.com;
location /no-cache {
proxy_pass https://remote.server.com/path/to/endpoint;
limit_req zone=analytics burst=10;
}
location / {
proxy_pass http://analytics.domain.com/no-cache;
expires 1h;
proxy_cache analytics;
proxy_cache_key $http_host$request_uri;
proxy_cache_valid 200 1h;
proxy_cache_methods GET;
proxy_cache_use_stale error timeout invalid_header updating
http_500 http_502 http_503 http_504;
proxy_ignore_headers "X-Accel-Expires";
proxy_ignore_headers "Expires";
proxy_ignore_headers "Cache-Control";
add_header X-Cache-Status $upstream_cache_status;
}
}