У меня есть обратный прокси-сервер nginx, и я хотел бы, чтобы он перенаправлял трафик на несколько сайтов и прослушивал порт 443 для всех этих служб. Я видел, как это делалось в нескольких местах, и похоже, что это нормальный способ установки обратного прокси ... он прослушивает один порт и пересылает на основе URL-адреса.
Однако у меня есть некоторые настройки, которые я считаю немного странными, потому что у меня есть сайт, который использует проверку NTLM через сайт IIS, и поэтому я использую поток nginx
Вот мои текущие файлы конфигурации:
/opt/nginx/nginx.conf
stream {
upstream backend {
hash $remote_addr consistent;
server mysite.domain.com:80 weight=5;
server 192.168.0.5 max_fails=3 fail_timeout=30s;
}
server {
listen 192.168.0.2:443 ssl;
ssl_certificate /usr/local/nginx/conf/mycert.crt;
ssl_certificate_key /usr/local/nginx/conf/mykey.key;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 5m;
proxy_connect_timeout 1s;
proxy_timeout 3s;
proxy_pass backend;
}
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
include /opt/nginx/sites-enabled/*;
}
/ opt / nginx / сайты-доступные / по умолчанию
server {
listen 80 default;
server_name _;
return 301 https://$host$request_uri;
}
server {
listen 192.168.0.2:443 ssl;
server_name myothersite.domain.com;
ssl_certificate /usr/local/nginx/conf/mycert.crt;
ssl_certificate_key /usr/local/nginx/conf/mykeykey;
ssl_session_timeout 5m;
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers "HIGH:!aNULL:!MD5 or HIGH:!aNULL:!MD5:!3DES";
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://192.168.0.6:80;
proxy_set_header Host $host;
proxy_redirect http:// $scheme://;
}
}
Когда я перехожу к перезапуску nginx, я получаю сообщение об ошибке
bind() to 127.0.0.1:443 failed (98: Address already in use)
Я думал, что под каждым server
вы могли бы заставить его прослушивать тот же порт, но это, похоже, не работает.
Если я удалю поток все вместе и просто использую два других сайта, которые не используют поток, это будет нормально работать с несколькими server
разделы.
Согласно официальная документация - Разные серверы должен прослушивать другой адрес: пары портов.