本地Nginx站点资源被重定向至HTTPS导致连接拒绝的解决方法
问题描述
访问本地站点http://c.gaz.dec04/时,所有资源均强制通过HTTPS加载,触发ERR_CONNECTION_REFUSED错误。
- 环境架构:Win11搭建应用,站点存储在WSL Ubuntu中,由Nginx托管至
http://c.gaz.dec04/;该站点在其他LAMP服务器(如Openserver)及线上主机可正常运行,仅本地WSL环境异常 - 已尝试操作:清除Chrome的HSTS规则,问题未解决
- 当前Nginx配置:
server { listen 80; #listen 443; server_name c.gaz.dec04 www.c.gaz.dec04; root /var/www/c.gaz.dec04/html/; index index.html index.htm index.php; #ssl off; #proxy_redirect off; location / { try_files $uri $uri/ =404; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; } location ~ /\.ht { deny all; } }
期望结果:所有静态资源(如*.css、*.js等)通过HTTP加载。
排查解决步骤
检查资源引用路径
先排查站点代码中的静态资源地址:确认CSS、JS、图片等是否硬写成了https://c.gaz.dec04/xxx这类绝对HTTPS路径。如果是,改成相对路径(如/xxx.css)或者HTTP绝对路径,这是最常见的触发原因。调整Nginx配置强制禁用HTTPS跳转
在Nginx的server块中添加以下配置,阻止浏览器自动升级到HTTPS:add_header Strict-Transport-Security "max-age=0"; add_header Content-Security-Policy "upgrade-insecure-requests=off";配置修改后,执行
sudo systemctl restart nginx重启Nginx生效。清理浏览器全站数据
除了HSTS规则,彻底清除该站点的缓存数据:打开Chrome的chrome://settings/siteData,搜索c.gaz.dec04并删除所有相关记录,重启浏览器后重试。检查网络与端口映射
- 确认Win11的
C:\Windows\System32\drivers\etc\hosts文件中,c.gaz.dec04已正确映射到WSL Ubuntu的IP(可在WSL中执行ip addr查看eth0的inet地址) - 检查Win11防火墙是否放行80端口,同时确认WSL的80端口未被其他进程占用。
- 确认Win11的
关闭HTTPS强制工具
关闭浏览器的HTTPS强制插件(如HTTPS Everywhere),以及本地代理工具(如Clash、Fiddler等),这类工具会强制将HTTP请求转向HTTPS。
内容的提问来源于stack exchange,提问作者Dec04
相关产品推荐
相关产品推荐

