nginx обратный прокси несколько разных бэкэндов - PullRequest
0 голосов
/ 26 февраля 2020

У меня есть nginx обратный прокси, который обслуживает несколько внешних доменов извне. nginx будет передавать запросы на порт 80 следующим образом:

http://server1.domain.com ---> http://backend1.domain.com

http://server2.domain.com ---> http://backend2.domain.com

http://server3.domain.com ---> http://backend3.domain.com

Теперь странное поведение. У меня есть один файл conf на сайтах с поддержкой. как test.conf. В этом файле конфигурации сконфигурирован только один бэкэнд только с одним externe:

server {
server_name server1.domain.com;
listen server1.domain.com:80;

 location ~ {
  proxy_pass_header Authorization;
  proxy_pass http://backend1.domain.com:80;
  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_http_version 1.1;
  proxy_set_header Connection "";
  proxy_buffering off;
  client_max_body_size 0;
  proxy_read_timeout 36000s;
  proxy_redirect off;
 }

 access_log /var/log/nginx/http_access.log;
 error_log  /var/log/nginx/http_error.log;

 }

Итак, как вы можете видеть конфигурацию, сконфигурирован только один бэкэнд. НО, если я позвоню http://server2.domain.com или http://server3.domain.com et c, он все равно будет перенаправлять меня на ПРАВИЛЬНЫЕ внутренние серверы, даже если я настроил только один ???? ?. Это кажется мне очень очень странным.

С другой стороны, я могу прокси с модулем потока ssl_preload на порт 443 или любой другой порт просто отлично. Поэтому, когда я удаляю один из серверов из директивы map, он не будет маршрутизироваться на сервер. Эта ситуация просто в порядке. Моя главная проблема - порт 80, ведущий себя так странно, почему ??? !! ??

...