gpt4 book ai didi

redirect - 为什么这个 nginx 服务器重定向到错误的域?

转载 作者:行者123 更新时间:2023-12-04 12:50:38 25 4
gpt4 key购买 nike

为什么这个 nginx 服务器重定向到错误的域?我的 nginx webserver 有两个域要服务,server1.eu 和 server2.eu,为什么它们会相互干扰?当我设置新的“干净”服务器安装时,不会出现此行为,因此此服务器的设置有什么问题。

监听 IPv6 的 nginx 网络服务器优先于 IPv4 并干扰 SNI。删除服务器的测试揭示了 nginx 的行为。

删除除服务器 1 之外的所有服务器,启用 IPv4 和 IPv6,重新加载 nginx,然后激活服务器 2,只有一个 IPv4 监听器并再次重新加载 nginx。浏览到服务器 2 将使您最终到达服务器 1。看起来 nginx 会自动监听第一个添加的 IPv6。因此,交换激活顺序将切换路由。

找到/etc/nginx/{conf.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;
}
}

最佳答案

我已经修改了您的 Nginx 配置。

这应该有效:

服务器 1:

server {
listen 443 default_server ssl http2;
listen [::]:443 default_server ssl http2;

root /var/www/server1.eu/webroot;
index index.php index.html index.htm;

server_name www.server1.eu;

ssl_certificate /etc/letsencrypt/live/server1.eu/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/server1.eu/privkey.pem;

location / {
try_files $uri $uri.html $uri/ @extensionless-php;
autoindex on;
}

location @extensionless-php {
rewrite ^(.*)$ $1.php last;
}

location ~ \.php$ {
include snippets/fastcgi-php.conf;

# # With php-fpm (or other unix sockets):
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
}
}

server {
listen 80;
server_name www.server1.eu;
return 301 https://$host$request_uri;
}

服务器 2:
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;

root /var/www/server2.eu/webroot;
index index.php index.html index.htm;

server_name www.server2.eu;

ssl_certificate /etc/letsencrypt/live/server2.eu/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/server2.eu/privkey.pem;

location / {
try_files $uri $uri.html $uri/ @extensionless-php;
autoindex on;
}

location @extensionless-php {
rewrite ^(.*)$ $1.php last;
}

location ~ \.php$ {
include snippets/fastcgi-php.conf;

# # With php-fpm (or other unix sockets):
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
}
}

server {
listen 80;
server_name www.server2.eu;
return 301 https://$host$request_uri;
}

注:

变化 default_server 导致 server1 是您的默认服务器。

关于redirect - 为什么这个 nginx 服务器重定向到错误的域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52586383/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com