반응형
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 에러
없이 정상 작동한다.
반응형
댓글