업스트림 앱 서버로 Puma를 실행하고 백그라운드 DB 클러스터로 Riak을 실행하고 있습니다. 약 25,000 명의 사용자에 대한 데이터 청크를지도 축소하고 Riak에서 앱으로 반환하는 요청을 보내면 Nginx 로그에 오류가 발생합니다.
업스트림에서 응답 헤더를 읽는 동안 업스트림 시간 초과 (110 : 연결 시간 초과)
동일한 요청으로 nginx 프록시없이 직접 업스트림을 쿼리하면 필요한 데이터를 얻습니다.
Nginx 시간 초과는 프록시가 입력되면 발생합니다.
**nginx.conf**
http {
keepalive_timeout 10m;
proxy_connect_timeout 600s;
proxy_send_timeout 600s;
proxy_read_timeout 600s;
fastcgi_send_timeout 600s;
fastcgi_read_timeout 600s;
include /etc/nginx/sites-enabled/*.conf;
}
**virtual host conf**
upstream ss_api {
server 127.0.0.1:3000 max_fails=0 fail_timeout=600;
}
server {
listen 81;
server_name xxxxx.com; # change to match your URL
location / {
# match the name of upstream directive which is defined above
proxy_pass http://ss_api;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_cache cloud;
proxy_cache_valid 200 302 60m;
proxy_cache_valid 404 1m;
proxy_cache_bypass $http_authorization;
proxy_cache_bypass http://ss_api/account/;
add_header X-Cache-Status $upstream_cache_status;
}
}
Nginx에는 많은 시간 제한 지시문이 있습니다. 중요한 것을 놓치고 있는지 모르겠습니다. 어떤 도움이라도 대단히 감사하겠습니다 ....