C.A*_*uyk 7 dns redirect nginx
为什么这个nginx服务器重定向到错误的域?我的nginx网络服务器有两个服务域,server1.eu和server2.eu,为什么它们相互干扰?当我设置一个新的"干净"服务器安装时,这种行为不会出现,所以这个服务器的设置有什么问题.
侦听IPv6的nginx web服务器优先于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
Run Code Online (Sandbox Code Playgroud)
区域文件记录:
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
Run Code Online (Sandbox Code Playgroud)
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;
}
}
Run Code Online (Sandbox Code Playgroud)
和
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;
}
}
Run Code Online (Sandbox Code Playgroud)
我修改了你的 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;
}
Run Code Online (Sandbox Code Playgroud)
服务器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;
}
Run Code Online (Sandbox Code Playgroud)
笔记:
更改default_server导致 server1 成为您的默认服务器。
| 归档时间: |
|
| 查看次数: |
309 次 |
| 最近记录: |