여러 사이트를 사용할 수 있는 Nginx가 nginx를 중단시킵니다.

여러 사이트를 사용할 수 있는 Nginx가 nginx를 중단시킵니다.

Nginx 서버에서 이상한 문제가 발생하고 있습니다. 내부 서버에서 실행되는 여러 서비스에 대한 역방향 프록시로 Nginx를 사용하고 있습니다.

이것은 내가 성취하려고 했던 것의 종류입니다:

app1.mydomain.com ---                                         --- server 1: 10.0.0.2
                      \              10.0.0.1               / 
                       |--- nginx reverse proxy server --- |
                      /                                     \
app2.mydomain.com ---                                         --- server 2: 10.0.0.3

그래서 app1에 첫 번째 항목을 추가하고 도메인 공급자에 DNS 설정을 추가했는데 모든 것이 완벽하게 작동했습니다. 너무 신나서 두 번째로 갔는데 모든 것이 망가졌습니다. 나는 달렸고 nginx -t모든 것이 잘 테스트되었습니다. Nginx 서버는 여전히 오류 없이 실행 중이었지만 app1.mydomain.com을 볼 수 있는 기능을 잃었습니다.

구성은 server_name 및 Proxy_pass를 제외하고 기본적으로 동일합니다.

파일: /etc/nginx/sites-available/app1.mydomain.com

server {
    server_name app1.mydomain.com;

    location / {
        client_max_body_size 512M;
        proxy_pass http://10.0.0.2;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

}

파일: /etc/nginx/sites-available/app2.mydomain.com

server {
    server_name app2.mydomain.com;

    location / {
        client_max_body_size 512M;
        proxy_pass http://10.0.0.3;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

}

내가 한 방법은 사용 가능한 사이트의 자체 파일에 각 구성을 추가한 다음 수행하는 것이었습니다.sudo ln -s /etc/nginx/sites-available/app1.mydomain.com /etc/nginx/sites-enabled/

이것은 app1에서는 완벽하게 작동했지만 app2에서 그렇게 한 후에는 app1에 대한 액세스 권한이 손실되고 app2가 나타나지 않습니다.

내 라우터에서는 포트 80과 443을 역방향 프록시 서버 10.0.0.1로 전달했는데 이것이 내 라우터의 유일한 규칙입니다. 내 도메인 이름 공급자에는 올바른 IP를 가리키는 올바른 A 레코드가 있습니다. 모든 것이 앱 1에서 작동하는지 확인할 수 있었지만 앱 2에 대한 심볼릭 링크를 수행하여 사이트 활성화로 이동하고 nginx를 다시 시작한 후에는 모든 것에 액세스할 수 없습니다.

무슨 일이 일어나고 있는지에 대한 아이디어가 있습니까? 감사해요!

답변1

@symcbean이 실제로 답을 지적했습니다. 내가 게시한 구성이 불완전했습니다. app1의 경우 표시된 정확한 구성(어떻게든 작동함)을 사용한 다음 TLS 구성을 추가하고 구성에 수신 변수를 추가하는 certbot을 실행했습니다.

그런 다음 앱 2에 대한 구성을 추가했고(정확히 표시된 대로) 서버에서 오류가 발생하지 않았지만 앱 1 또는 앱 2에 액세스하려고 할 때 연결 거부 오류가 발생하기 시작했습니다. 청취 구성을 추가하고 nginx를 다시 시작한 후 모든 것이 작동하기 시작했습니다.

감사해요!

관련 정보