Nginx HTTP正常但HTTPS持续显示默认欢迎页问题求助
Nginx HTTPS显示默认页问题排查
问题背景
我已查阅相关问题并按照Stack Overflow相关教程操作,完成了SSL证书配置、sites-enabled与sites-available软链接创建、443端口开放。目前HTTP访问应用正常(未开启重定向),但HTTPS仍显示Nginx默认欢迎页,怀疑是配置文件冲突或权限问题,以下是我的配置文件:
server { listen 80; listen [::]:80; server_name somewebsite.ca www.somewebsite.ca; # Redirect # return 301 https://$host$request_uri; # If you don't want a redirect, remove the return 301 line and include a location block access_log /var/log/nginx/reverse-access.log; error_log /var/log/nginx/reverse-error.log; location / { include proxy_params; proxy_pass http://127.0.0.1:5000; } client_max_body_size 300M; } # HTTPS Server Block server { listen 443 ssl; listen [::]:443 ssl; server_name somewebsite.ca; ssl_certificate /etc/letsencrypt/live/somewebsite.ca/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/somewebsite.ca/privkey.pem; ssl_protocols TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers on; ssl_ciphers HIGH:!aNULL:!MD5; # Location blocks for different services location /auth { include proxy_params; proxy_pass http://127.0.0.1:5000; } location /camera { include proxy_params; proxy_pass http://127.0.0.1:5000; } location /photo { include proxy_params; proxy_pass http://127.0.0.1:5000; proxy_read_timeout 600s; proxy_send_timeout 600s; client_max_body_size 300M; }
排查与解决步骤
移除默认配置冲突
默认的/etc/nginx/sites-enabled/default配置会优先匹配未被明确指定的请求,直接删除或重命名该文件,然后执行sudo nginx -t验证配置语法,无错误后重启Nginx:sudo systemctl restart nginx补全HTTPS的根路径location
当前HTTPS配置缺少location /块,访问根域名时Nginx找不到匹配规则,会 fallback 到默认站点。在HTTPS server块中添加:location / { include proxy_params; proxy_pass http://127.0.0.1:5000; }统一server_name覆盖所有域名
HTTP块包含了www.somewebsite.ca,但HTTPS块仅配置了somewebsite.ca,访问https://www.somewebsite.ca会触发默认页。修改HTTPS的server_name:server_name somewebsite.ca www.somewebsite.ca;验证SSL证书权限
确保Nginx进程(通常以www-data用户运行)能读取证书文件:- 查看证书目录权限:
sudo ls -l /etc/letsencrypt/live/somewebsite.ca/ - 权限不足时执行:
sudo chmod -R 755 /etc/letsencrypt/live/ sudo chown -R root:www-data /etc/letsencrypt/live/
- 查看证书目录权限:
确认配置已加载
执行sudo nginx -T查看Nginx加载的完整配置,确认你的HTTPS server块已被正确加载,且没有被其他配置覆盖。
内容的提问来源于stack exchange,提问作者Ched
相关产品推荐
相关产品推荐

