본문 바로가기
Programming

Nginx uwsgi_pass timeout 현상 해결하기

by 하하호호 2022. 1. 19.
반응형

 

 

 

upstream timeout error 발생

 

서버를 실행하고, 작업을 진행하는 과정에서 Error가 

발생한다. 에러로그를 확인해보니 upstream timeout

이 발생했다고 한다. 

 

 

 

즉, 서버에 request가 들어왔는데, 서버에서 응답이 너무

느려서 nginx에서 connection을 끊어버리는 현상이 발생

하고 있는 것이다. 이래저리 구글링을 해보니, nginx에서

default 값이 2분이라고 한다. 즉, 응답하는데 2분이

넘어가는 요청은 전부 처리가 안되고 있다는 것이다.

 

upstream timeout error 해결

먼저 nginx 서버 configuration 파일을 vim으로 열어준다.

sudo vim /etc/nginx/sites-available/project.conf

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# the upstream component nginx needs to connect to
upstream PROJECT {
    server unix:///home/ubuntu/PROJECT/PROJECT.sock;
}
# configuration of the server
server {
    listen      443 ssl;
   server_name www.PROJECT.com;
    charset     utf-8;
 
    # SSL
    ssl                 on;
    ssl_certificate     /home/ubuntu/SSL/nginx_ssl.crt;
    ssl_certificate_key /home/ubuntu/SSL/private.key;
 
    ssl_session_timeout 5m;
 
    ssl_protocols       SSLv2 SSLv3 TLSv1.2;
    ssl_ciphers         HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers   on;
 
    # max upload size
    client_max_body_size 75M;
 
    # Django media and static files
    location /static {
        alias /home/ubuntu/PROJECT/PROJECT/static;
    }
    # Send all non-media requests to the Django server.
    location / {
        include     /home/ubuntu/PROJEC/PROJECT/uwsgi_params;
 
       uwsgi_pass  PROJECT;
        uwsgi_read_timeout 300;
        uwsgi_send_timeout 300;
    }
}
 
cs

 

configuration 파일에 다음 옵션을 추가해준다.

proxy로 upstream을 사용한 경우에는 uwsgi_pass를

proxy_pass로 변경해주고 옵션을 추가해주면 된다.

uwsgi_pass  PROJECT;
uwsgi_read_timeout 300;
uwsgi_send_timeout 300;

 

이제 서버에서 응답하는 시간을 300초(5분)까지

늘려서 작업을 진행할 수 있게 되었다.

 

실제로 서버에서 작업을 실행해보니 timeout 에러

없이 정상 작동한다.

 

반응형

댓글