为NGINX配置SSL后80端口网站无法访问求助
问题分析与解决方案
核心问题
你的NGINX配置把HTTP(80端口)和HTTPS(443端口)请求放在同一个server块中,未对80端口请求做正确处理,同时SSL证书与当前域名不匹配,这两个因素共同导致80端口无法正常访问。
修正后的配置
将HTTP和HTTPS请求拆分到两个独立server块:
# 处理80端口请求,强制跳转到HTTPS server { listen 80; listen [::]:80; server_name www.dailystockstats.com dailystockstats.com; # 所有HTTP请求重定向到HTTPS return 301 https://$server_name$request_uri; } # 处理443端口HTTPS请求 server { listen 443 ssl; listen [::]:443 ssl; server_name www.dailystockstats.com dailystockstats.com; # 替换为dailystockstats.com对应的SSL证书 ssl_certificate /etc/nginx/ssl/dailystockstats.com.crt; ssl_certificate_key /etc/nginx/ssl/dailystockstats.com.key; root /var/www/dailystockstats/; # 若应用有额外NGINX配置,可取消下方注释 # include /var/www/dailystockstats/nginx.conf; # 可选:添加基础SSL优化配置 ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers HIGH:!aNULL:!MD5; }
关键说明
- 拆分server块:80端口单独处理跳转,避免HTTP请求被强制要求SSL加密导致访问失败。
- 证书匹配:当前使用的
connectingdots.science证书与dailystockstats.com域名不匹配,必须替换为对应域名的有效SSL证书,否则HTTPS访问也会出现安全警告或失败。 - 配置生效:修改后执行
sudo nginx -t检查语法,无错误后执行sudo systemctl reload nginx重启NGINX服务。
内容的提问来源于stack exchange,提问作者Pawan
相关产品推荐
相关产品推荐

