IT'S DO
Published 2024. 12. 2. 12:28
[error] 502 Bad gateway error
728x90

 

# 결론은 네트워크 및 웹중계(서브 도메인과 포트 연결), 클라우드 내부 서버 포트 방화벽 다 신경 써서 포트 작업을 해주면 502 Bad gateway가 해결된다.

 

# 과정 : 

클라우드 서버(linux)가 이유는 모르겠지만, 꺼졌다가 올라왔다. 그래서 firewalld 다시 설정하고, apche tomcat을 다시 실행시켜주었다.

그랬는데 502 bad gateway가 떴다. 이런 뭐가 문제인지 모르겠다.

 

그래서 찾았다. 찾았는데 원인이 나만 방화벽을 뚫는다 해서 되는게 아니었다. 서버가 이렇게 되면 이야기 들어보니 다른 설정은 그대로 유지되는거 같다. 

 

# 원인

1. 아이피 고정으로 되어있는지 확인 하는거랑. (=> 서버가 내렸다 올라가면 고정 아아이피가 아닐 시 변하는 경우도 있다.)

2. 방화벽 뚫려있는지.(클라우드 내부서버, 도메인과 연결을 위한 네트워크 및 중계기)

 

이 두개만 중점으로 보면 된다.

 

=> 해결은 네트워크 및 웹 중계 서버에 방화벽 작업을 진행하고, 도메인과 웹의 포트가 뚫려있는지 확인해야한다.

네트워크 및 웹 중계 서버에 다수의 방화벽이 있으며, 이 중 하나라도 미허용 상태일 경우 서비스 연결이 불가능하다고 한다.

 

즉 클라우드의 웹서버는 apache ssl 설정에서 443으로 redirect로 web(tomcat)서버의 아이피 포트를 우회하여 한 포트가 사용한 포트(443)이 열려있어야 한다. (물론 설정에 따라 포트가 달라진다. ssl 설정 포트 확인.)

 

ex) apache의 ssl.conf 파일에

<VirtualHost *:443>

#   compact non-error SSL logfile on a virtual host basis.
CustomLog logs/ssl_request_log \
          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
    SSLProxyEngine on
    SSLProxyVerify none
    SSLProxyCheckPeerCN off
    SSLProxyCheckPeerName off
    SSLProxyCheckPeerExpire off

    ProxyPass / http://localhost:8091/
    ProxyPassReverse / http://localhost:8091/
</VirtualHost>

 

이렇게 되어 있다면, 8091은 안열려있어도 된다.  상황에 따라 다른데, 도메인 포트가 기본적으로 따로 없고 그냥 기본 포트였다면(https의 기본포트 443), 443만 신경쓰면된다. 즉 apache가 포트가 tomcat port를 proxy해서 가져와서 사용하기에 443만 열어 주면 된다. 하지만 포트가 다르다면 그거를 열어줘야됨.

 

결론은 네트워크, 웹중계, 클라우드 내부 서버 포트 방화벽 다 신경 써서 포트 작업을 해주면 502 Bad gateway가 해결된다.

 

 

#그외의 원인이 될 수도 있는것. 

위에 작업을 다 진행 했음에도 안될때

 

selinux 문제

=> 

sudo setsebool -P httpd_can_network_connect 1

sudo setenforce 0

진행 후 확인해보기.

profile

IT'S DO

@멋진놈

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!