http跳转https的bug解决
现在输入zhuyu.xyz或者http://www.zhuyu.xyz都可以自动跳转主页https://www.zhuyu.xyz了
同样,输入http://blog.zhuyu.xyz会自动跳转到https://blog.zhuyu.xyz了。
说明nginx的端口转发规则正常生效了(终于摆脱了tomcat的404页面……)。
自从从百度云迁移到腾讯云之后https跳转就失效了,同样的配置和环境却有不一样的表现。尝试对Nginx的配置文件做了逐行逐行的分析,甚至花了半天的时间请教AI,both failed at last though。
猜猜看最后怎么解决的?仅仅是把firewalld服务unmask之后重新mask,所有问题解决了。
一些小的疑惑:
- firewalld stop/disable/mask
centos的防火墙服务概念分了三级,stop主要是停止服务,disable则控制重启(但依然可以被其他服务手动启动),而mask则是禁止。如果要start firewalld,必须先unmask该服务。 - 问道AI:为什么unmask之后重新mask,所有问题就解决了呢?
The exact reason restarting firewalld resolved your issues is hard to determine conclusively without being able to see your environment and configurations.
But in general, firewall tools managing complex rulesets can sometimes run into permission, caching or rule validity problems that require a full restart to remedy.
所以是另一种程度的“重启大法好”?希望每月1号的https续签程序也可以自动运行起来,二者是强相关的。
https自动续签程序运行成功!
时隔一年,因为要用到fail2ban,所以不可避免的启用了firewalld服务,那么这个问题就又来了:绕了一大圈,发现有一个这样的转发规则:
这应该是上古时期测试防火墙直接端口转发的设置,但8080端口早就弃用了,那么直接访问http://www.zhuyu.xyz就会转发到空的端口上,自然返回空内容错误了。解决办法是,只需要取消该转发规则即可:
回头测试了一下,所有的nginx跳转都ok了:这包括zhuyu,xyz|www.zhuyu.xyz | www.zhuyu.xyz/ | http://www.zhuyu.xyz(这个就是转发规则拦截导致失败跳转的)