• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

https 적용후 nginx 502 bad gateway 오류

21.11.10 14:50 작성 조회수 3.12k

1

안녕하세요, 제로초님.

배포 후 nginx가 502 bad gateway 오류가 발생했는데, 

어제는 잘 되다가 오늘 갑자기 안되서 질문드립니다...

서버를 AWS lightsail을 이용하였고, nginx/letsencrypt를 사용하여 https를 적용하였습니다. nginx 부분은 블로그에 작성하신 내용을 참고하였고, default와 .conf 파일 은 다음과 같습니다.

//etc/nginx/nginx.conf

user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;

events {
worker_connections 768;
# multi_accept on;
}

http {

sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;

include /etc/nginx/mime.types;
default_type application/octet-stream;

ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # Dropping SSLv3, ref: POODLE
ssl_prefer_server_ciphers on;

access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;

gzip on;

include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}

/etc/nginx/sites-enabled/default


server {

listen 443 ssl;
 
server_name apis.hometownalba.com;
ssl_certificate /etc/letsencrypt/live/apis.hometownalba.com/fullchain.pem; # managed b
y Certbot
ssl_certificate_key /etc/letsencrypt/live/apis.hometownalba.com/privkey.pem; # managed
by Certbot
 
include /etc/letsencrypt/options-ssl-nginx.conf;
 
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
 
location / {
 
proxy_set_header Host $host;
 
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 
proxy_set_header X-Forwarded-Proto $scheme;
 
user www-data;
user www-data;
}
 
server {
 
listen 443 ssl;
 
server_name apis.hometownalba.com;
ssl_certificate /etc/letsencrypt/live/apis.hometownalba.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/apis.hometownalba.com/privkey.pem; # managed by Certbot
 
include /etc/letsencrypt/options-ssl-nginx.conf;
 
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
 
location / {
 
proxy_set_header Host $host;
 
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 
proxy_set_header X-Forwarded-Proto $scheme;
 
proxy_set_header Upgrade $http_upgrade;
 
proxy_set_header Connection "upgrade";
 
proxy_set_header X-Real-IP $remote_addr;
 
proxy_pass http://127.0.0.1:3065;
 
proxy_redirect off;
 
proxy_connect_timeout 300;
proxy_send_timeout 300;
proxy_read_timeout 300;
 
}
 
 
 
}

그리고 error log를 찍어보았는데, 다음과 같았습니다.

2021/11/10 05:36:35 [error] 1603#1603: *5 upstream prematurely
closed connection while reading response header from upstream,
client: 1.238.158.106,
server: apis.hometownalba.com,
request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:3065/",
host: "apis.hometownalba.com"

2021/11/10 05:39:37 [error] 1684#1684: *5 upstream prematurely
closed connection while reading response header from upstream,
client: 1.238.158.106,
server: apis.hometownalba.com,
request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:3065/",
host: "apis.hometownalba.com"

 

매번 답변 감사드립니다 ㅠㅠ

 

답변 1

답변을 작성해보세요.

0

노드 서버가 꺼진 것 같은데요. 노드 서버쪽 에러를 확인해보세요. pm2 logs --err --lines 200

dhj100님의 프로필

dhj100

질문자

2021.11.10

말씀해주신대로 확인해보았는데, 

 Error: connect ETIMEDOUT 54.75.89.97:6379

0|server   |     at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1159:16) {

0|server   |   errno: -110,

0|server   |   code: 'ETIMEDOUT',

0|server   |   syscall: 'connect',

0|server   |   address: '54.75.89.97',

0|server   |   port: 6379

0|server   | }

 

이 에러가 반복이 됩니다..

 

서버 실행할때 nginx를 start하고 sudo npm start 순으로 진행을 하는데, 잘못된걸까요??

redis 쓰시나요? 현재서버의 아웃바운드나 redis 서버의 인바운드가 막힌 것 같은데요.

dhj100님의 프로필

dhj100

질문자

2021.11.10

네 강의에서 알려주신 redis labs 사용하고 있습니다. 

바운드가 방화벽 개념인것 같은데, 방화벽 설정은 lightsail에서 아래 사진처럼 포트 열어두긴 했는데, 맞을까요??

 

redis labs는 어떻게 확인하면 될까요??

dhj100님의 프로필

dhj100

질문자

2021.11.10

안녕하세요 제로초님! 힌트 주신덕분에 에러 해결하였습니다. redis 쪽이 에러 원인이였던것같아요~~ 정말 감사드립니다.