Nginx 역방향 프록시는 3개 사이트 중 하나만 찾을 수 있습니다.

Nginx 역방향 프록시는 3개 사이트 중 하나만 찾을 수 있습니다.

업데이트 한 번에 하나의 사이트만 로드할 수 있는 동작은 클라이언트 측 브라우저와 관련된 것으로 보입니다. 하나의 브라우저 창(각각 탭 하나씩)에서 3개의 사이트를 모두 열면 아래에 설명된 동작이 나타납니다. 3개의 개별 브라우저(Edge, Opera 및 Chrome을 사용함)를 사용하면 3개의 사이트가 모두 예상대로 로드됩니다. /업데이트

URL을 기반으로 3개의 내부 서버(IIS 10을 실행하는 Windows 서버 2019) 중 하나에 외부 트래픽을 전달하기 위한 Nginx 역방향 프록시 설정이 있습니다(테스트 환경용). nginx 서버와 웹 서버는 모두 동일한 VLAN에 있습니다.

이는 웹 서버 nginx를 재부팅한 후 오늘 아침까지 의도한 대로 작동해 왔으며 이제 한 번에 3개 사이트 중 하나만 로드할 수 있습니다.

3개 사이트를 모두 열려고 하면 첫 번째 사이트는 정상적으로 로드되고 나머지 2개 사이트에서는 즉시 404 오류가 발생합니다. 몇 분 정도 기다렸다가 404 중 하나를 새로 고치면 로드되지만 괜찮았던 첫 번째 사이트는 이제 404로 이동하며 세 번째 사이트가 로드되는 경우에도 마찬가지입니다.

Nginx 구성은 변경되지 않았으며 오늘 아침 재부팅하기 전에 3개 사이트를 모두 동시에 로드했습니다.

nginx -t로 nginx conf를 테스트했는데 괜찮게 돌아왔습니다. sudo systemctl reload nginx로 nginx conf를 다시 로드했습니다. 동작에 변화가 없습니다. nginx 서버를 다시 시작했습니다. 동작에 변화가 없습니다.

웹 서버를 직접 탐색하면 3개 사이트 모두 정상적으로 작동합니다.

nginx에서 3개의 웹 서버 모두에 포트 443을 사용하여 텔넷으로 연결할 수 있으며 그 반대의 경우도 마찬가지입니다.

동작이 변경된 이유에 대한 제안 사항이 있습니까?

nginx 구성은 다음과 같습니다(실제 URL을 교체했지만 conf는 변경되지 않았습니다).

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

events {
        worker_connections 1024;
        # multi_accept on;
}
#added by Ian to allow streaming
stream {
# To add additional websites and servers:
# Add the hostname and backend label to the map, then add the upstream blocks, as in the commented example below.
# ***Once you have updated the config you MUST reload nginx with the following command: sudo systemctl reload nginx
    map $ssl_preread_server_name $name {
   url.1.com                             GunServer;
   url.2.com                             CatServer;
   url.3.com                             BlueServer;
  # <hostname of website goes here>     <text label for the backend server goes here>;
  # example: mywebsite.com       myserver;
}

# Then create a new upstream block using the label set above as shown below
# upstream myserver {
        # server <IP:port>;
#}

upstream GunServer {
        server 10.25.2.12:443;
}

upstream CatServer {
        server 10.25.2.13:443;
}

upstream BlueServer {
        server 10.25.2.11:443;
}

server {
    listen      443;
    proxy_pass  $name;
    ssl_preread on;
}
}

# all settings below this line were from nginx example conf

관련 정보