概述
docker内nginx配置ssl后http无法访问
问题:
https可以访问,http端口无法访问,https默认访问443接口,http默认访问80端口,即80端口配置失效:
rewrite ^(.*)$ https://$host$1 permanent;
没有跳转到https请求,输入https://加域名可以访问,直接输入域名无法访问.
下图为配置文件:
排查思路:
1,检查80端口是否开启:
排查为已开启状态,并且之前应用直接开放80端口未安装nginx时尝试访问正常.
2.查看nginx是否监听80端口
可以看到是监听了80端口的.
3.查看nginx日志
发现nginx根本没有打印任何日志,所以不知道请求到底是否进入nginx
附上页面访问结果:
再次更新一下吧,问题已经解决,很蛋疼,可以提供一下排查思路.
确认请求是否进入80端口:
1.ping是ICMP协议,ICMP仅包含控制信息,没有端口。telnet是TCP协议,有端口,能承载数据。
2.启动telnet服务组件后, 简单的测试办法是在本机上telnet 127.0.0.1,如果失败就是telnet服务没有启动,如果成功就说明防火墙作了限制。
3.确认telnet服务启动后,telnet ip或域名 端口,例: telnet 127.0.0.1 80
总的排查思路没错:
1.在服务器安全-防火墙内,确认已经添加该端口。
2.确认服务已经开启端口。
3.确认80端口正常被监听。
4.确认实例防火墙已经放行服务。
这个排查思路是没有错的,但是我都尝试了并且没有效,最终重置系统再次部署项目依旧不能访问80端口。
然后提交了工单,阿里云服务器显示我安全组内已开发80端口,但是在客服控制面板内却查询80端口未开放,所以一直telnet不通,最后我删除旧规则重写添加新的80端口解决了。(阿里云服务器使用还是可以的,只是我比较倒霉,碰上了低概率的bug,有相似问题的可以参考一下排查思路)
最后
以上就是温柔砖头为你收集整理的nginx 80端口无法访问docker内nginx配置ssl后http无法访问的全部内容,希望文章能够帮你解决nginx 80端口无法访问docker内nginx配置ssl后http无法访问所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复