为什么curl可正常访问站点但浏览器无法访问?Nginx+Flask部署问题
核心问题:.dev 域名内置强制HTTPS规则
.dev 是Google运营的顶级域名,整个后缀已经被预载入所有主流浏览器的HSTS预加载列表,浏览器会强制所有.dev域名的访问走HTTPS 443端口,默认禁止HTTP请求,会直接把HTTP请求升级到HTTPS,这个规则是浏览器内置的,修改browser.fixup.fallback-to-https这类普通配置不生效,删除SiteSecurityServiceState.txt也不会生效。
解决方向二选一:
- 更换非.dev后缀的普通域名部署
- 为站点配置SSL证书,新增Nginx 443端口的HTTPS配置
其他可能的排查点
- 端口暴露与防火墙配置
你在服务器本地执行curl pyroblast.dev正常不代表公网可访问:- 检查Linode实例的安全组/防火墙规则,确认已放行80、443端口的公网入站请求
- 检查Nginx容器的端口映射配置,确认是将容器80端口映射到宿主机
0.0.0.0:80,而非仅绑定127.0.0.1:80
- 域名解析配置
确认pyroblast.dev的公网解析记录指向你Linode实例的公网IP,可在本地电脑执行nslookup pyroblast.dev核对返回IP是否正确 - Nginx配置补全
如果你选择配置HTTPS,需要在Nginx配置中新增443端口的server块,配置对应的SSL证书、密钥路径即可。
内容的提问来源于stack exchange,提问作者Archirk
相关产品推荐
相关产品推荐

