Nginx中的服务器块被忽略



所以我试图用nginx在一台服务器上托管多个网站。我设置了一个配置,DNS记录都可以工作,有些事情可以工作,但其中一个域不可以。

server {
listen 80 ;
listen [::]:80 ;

root /var/www/aphrim.dev/html;
index index.html index.htm index.nginx-debian.html;
server_name aphrim.dev www.aphrim.dev; # managed by Certbot

location / {
try_files $uri $uri/ =404;
}

#listen [::]:443 ssl ipv6only=on; # managed by Certbot
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/aphrim.dev/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/aphrim.dev/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

}
server {
listen 80 ;
listen [::]:80 ;

#root /var/projects/aphrim.dev/html;
index index.html index.htm index.nginx-debian.html;
server_name projects.aphrim.dev; # managed by Certbot

location / {
proxy_pass http://127.0.0.1:3002;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
}

listen [::]:443 ssl; # managed by Certbot
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/projects.aphrim.dev/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/projects.aphrim.dev/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
server {
listen 80; 
listen [::]:80;
#   root /var/projects/aphrim.dev/html;
index index.html index.htm index.nginx-debian.html;
server_name techchan.org;
location / {
proxy_pass http://127.0.0.1:3002;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
}
}

所以,我试图让第三个服务器块工作,相反,它只显示第一个服务器块的内容。我知道第三个服务器块的内容是有效的,因为我把它放在第二个服务器块上,它就有效了。如果有人有解决方案,我将不胜感激。

经过几个小时的搜索,找到了问题。如果有人有同样的问题,只需添加

listen [::]:443 ssl;
listen 443 ssl;

它应该被修复,至少对我来说是这样修复的。

最新更新