所以我试图用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;
它应该被修复,至少对我来说是这样修复的。