NGINX配置HTTP跳转HTTPS不生效求助(使用LetsEncrypt SSL)
解决方案
- 删除冗余配置块
你配置末尾没有listen指令的server块属于Certbot生成的冗余无效配置,直接删除整段即可,你配置顶部的80端口server块已经承担了HTTP跳转HTTPS的逻辑,这段重复配置会导致路由冲突。
删除后保留的80端口配置就足够:
server { listen 80; listen [::]:80; server_name onsitecourse.com www.onsitecourse.com; return 301 https://www.onsitecourse.com$request_uri; }
- 生效配置并验证语法
修改完配置后执行以下命令检查配置语法是否正确:
nginx -t
返回test is successful后执行重载命令生效:
systemctl reload nginx
- 检查80端口连通性
- 先在服务器本地执行命令确认Nginx已经监听80端口:
ss -tulpn | grep :80
如果没有返回Nginx监听80的记录,检查Nginx启动日志排查错误。
- 检查防火墙规则:如果用ufw防火墙,执行
ufw allow 80/tcp放行80端口;如果用firewalld,执行firewall-cmd --add-service=http --permanent && firewall-cmd --reload;云服务器还要登录云厂商控制台,确认安全组入方向规则开放了80端口的访问权限。
- 排查运营商端口封禁
如果以上配置都正确,HTTP访问还是超时,大概率是服务器所在网络的运营商封禁了80端口:如果是国内服务器,需要完成ICP备案后向服务商申请解封80端口;如果是境外服务器,可以联系服务器商确认是否主动限制了80端口访问。
内容的提问来源于stack exchange,提问作者kabir das
相关产品推荐
相关产品推荐

