Nginx部署静态站点HTTPS访问异常排查求助
静态站点HTTPS访问故障排查及修复
你的Nginx配置存在几处明确错误,直接导致HTTPS无法正常工作,以下是问题点和修复方案:
1. SSL证书路径语法错误
在HTTPS的server块中,ssl_certificate配置存在明显问题:
ssl_certificate /etc/nginx/ssl/site.com.site.>
- 路径不完整:缺少证书文件的后缀(通常是
.crt或.pem) - 多余符号:末尾的
>属于无效字符,会导致Nginx无法识别证书路径
修正后的写法示例(请根据实际证书文件名调整):
ssl_certificate /etc/nginx/ssl/site.com/site.crt;
2. 配置文件格式混乱
你提供的配置存在语法结构错误,第一个server块的闭合}位置错误,且80端口的server块写法不规范。正确的完整配置如下:
server { listen 443 default ssl; root /var/www/site.com/site; index index.html index.htm index.nginx-debian.html; server_name site.com www.site.com; ssl_certificate /etc/nginx/ssl/site.com/site.crt; ssl_certificate_key /etc/nginx/ssl/site.com/site.key; ssl_prefer_server_ciphers on; location / { try_files $uri $uri/ =404; } } server { listen 80; server_name site.com www.site.com; return 301 https://$host$request_uri; }
注:原80端口块中server_name _;会匹配所有域名,建议改为明确的站点域名,避免不必要的跳转。
3. 验证配置并重启服务
修改配置后,先执行语法检查:
nginx -t
如果输出test is successful,再重启Nginx生效:
systemctl restart nginx
额外排查项
- 确认服务器443端口已对外开放,防火墙/安全组允许HTTPS流量通过
- 检查SSL证书是否有效,确保未过期且与站点域名匹配
内容的提问来源于stack exchange,提问作者Santiago Gonzalez
相关产品推荐
相关产品推荐

