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를 다시 시작한 후 모든 것이 작동하기 시작했습니다.
감사해요!