Development/Environment

Nginx :: 이중화 과정에서 발생한 오류들 정리

고고마코드 2022. 12. 5. 17:16
반응형

Nginx 이중화 하면서 발생한 오류들 정리


Address already in use

사용하려는 포트가 이미 사용중인 경우

  • 사용중인 포트 확인하기 (만약 사용중인 포트가 꼭 필요한 포트라면 다른 포트로 우회해도 됨)
    $ netstat -lntp
  • 중지시켜도 상관이 없다면 프로세스 중지시키기
    $ kill -9 [pid번호]

Permission denied

포트 권한이 없어서 발생하는 오류

포트가 열려있는데도 오류가 발생한다면 아래 CentOS 보안 정책에 의해 막혔을 수도 있음.
포트를 추가해보고 재시도

  • 포트 추가
    $ semanage port -a -t http_port_t -p tcp [포트 번호]
  • 포트 확인
    $ semanage port -l | grep http_port_t

unable to verify the first certificate

인증서 등록 시 도메인 인증서를 그대로 사용하면 발생하는 오류

인증서 종류에는 [도메인 인증서] [중간 인증서] [루트 인증서] 세 종류가 있다.
Nginx에서 이중화를 하려는 경우 이 세가지 인증서를 합쳐서 사용해야 한다.
만약 인증서 생성 시 전달받은 중간 인증서가 없다면, 도메인 인증서와 루트 인증서만 합쳐도 된다.

  • 인증서 파일을 합친다.
    $ cat [도메인 인증서.crt] [중간 인증서.crt] [루트 인증서.crt] > [원하는 이름.crt]
  • ssl_certificate에 인증서 파일 대신에 새로 만든 인증서 파일을 입력한다.

failed: Error during WebSocket handshake

소켓 통신 과정에서 발생하는 오류, 이중화 과정을 거치면서 호스트 구분이 불확실해서 발생하는 오류로 보인다.

  • location에 header 정보 추가

    location / {
        proxy_pass https://chat;
    
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
    }

반응형