Почему этот сервер nginx перенаправляет на неправильный домен?Мой веб-сервер nginx имеет два обслуживаемых домена: server1.eu и server2.eu, почему они мешают друг другу?Когда я настраиваю новую «чистую» установку сервера, это поведение НЕ появляется, так что не так в настройке этих серверов.
Веб-сервер nginx, слушающий IPv6, имеет приоритет над IPv4 и мешает SNI.Тестирование с удалением серверов показывает поведение nginx.
Удалите все серверы, кроме сервера 1, с включенными IPv4 и IPv6, перезагрузите nginx, затем активируйте сервер 2 только с прослушивателем IPv4 и снова перезагрузите nginx.Просмотр к серверу 2 позволит вам оказаться на сервере 1. Похоже, что nginx автоматически прослушивает первый добавленный IPv6.Таким образом, чередование последовательности активации переключит маршрутизацию.
find /etc/nginx/ enjconf.d,sites-enabled} дает
/etc/nginx/sites-enabled/server1.eu
/etc/nginx/sites-enabled/server2.eu
Записи файла зоны:
AAAA server1.eu directs to IPv6 address
A server1.eu directs to IPv4 address
AAAA server2.eu directs to IPv6 address
A server2.eu directs to IPv4 address
конфигурация сервера nginx:
server {
listen 80;
listen [::]:80;
server_name server1.eu;
return 301 https://www.server1.eu;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
ssl_certificate /etc/letsencrypt/live/server1.eu/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/server1.eu/privkey.pem;
include snippets/ssl-params.conf;
server_name www.server1.eu;
root /var/www/server1.eu/webroot;
index index.php index.html index.htm ;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include fastcgi.conf;
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
}
}
и
server {
listen 80;
listen [::]:80;
server_name www.server2.eu;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
ssl_certificate /etc/letsencrypt/live/server2.eu/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/server2.eu/privkey.pem;
include snippets/ssl-params.conf;
server_name www.server2.eu;
root /var/www/server2.eu/webroot;
index index.php index.html index.htm ;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include fastcgi.conf;
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
}
}