https网站排查虚拟子目录404错误

在服务器迁移后,遇到HTTPS访问虚拟目录404错误。问题源于IPv6配置,服务器使用IPv6地址而Nginx配置代理的是IPv4端口。关闭IPv6,调整Nginx配置为仅使用IPv4,成功解决反向代理问题。
摘要由CSDN通过智能技术生成

    网站增加了SSL证书, 所以访问协议就从http://domain.com变成了https://domain.com,在这里一直是正常的。

    但是在服务器迁移后,出现了虚拟目录找不到的现象:https://domain.com/system/aa.js,404错误,众所周知是找不到页面的意思, 于是打电话给华为技术客服,他回答克隆和迁移都不会影响数据,于是查了下本机目录,发现没有system这个目录,再查nginx配置,发现location system{}定义的是本地主机的一个端口:localhost:808,于是咨询开发eric,808是什么端口,eric回复说前端转后端的一个服务端口,于是找到相应的java服务(以下称A服务),开启A服务后,用netstat -anp | grep 808,发现显示的是tcp6 ....808,ping6 localhost后,环回地址正常,说明系统网卡是开启了IPV6协议的。于是打电话咨询我们的服务宽带的技术售后,我们的IPV6地址是多少?回复说我们的宽带没有IPV6地址,只有IPV4地址, 就是服务打开的TCP6端口外网是访问不到的。

    于是关闭本机IPV6协议, 具体大家自行百du,重新开启A服务,发现显示的TCP4....808了,至此关闭成功。

    重新打开nginx配置,版本是1.8.0的,这个版本编译时不支持IPV6协议,别管我为什么知道,因为在关闭V6协议之前,试图配置V6 时nginx报错:nginx: [emerg] the INET6 sockets are not supported on this platform in upstream "[::1]:808" in /usr/local/nginx/conf/nginx.conf:36,于是在大神的帮助下,注释掉V6的转发,仅保留localhost:808的转发,经页面测试,正常!

    大神最后总结:反向代理不通啊!之前服务用的IPV6, nginx代理V4,所以找不到V6的地址,禁用V6以后,A服务自动走V4通道,代理也是V4, 于是页面正常了。

-----------------------------------------------------------

附:centos禁用IPV6如下步骤:
centos7上开启ipv6往往有些不太方便,有时走ipv4协议有时走ipv6协议,出现问题了将会很难排查。而且还是内网机器,地址往往是够用的,没必要使用到ipv6。所以有时我们需要关闭机器的ipv6.

方法/步骤

使用ifconfig命令查看网卡信息,如果出现inet6 fe80::20c:29ff:fed0:3514,说明机器开启了ipv6

编辑/etc/sysctl.conf配置,增加net.ipv6.conf.all.disable_ipv6=1

编辑/etc/sysconfig/network配置,增加 NETWORKING_IPV6=no,保存并退出

编辑/etc/sysconfig/network-scripts/ifcfg-eno1,确保IPV6INIT=no,ifcfg-eno1是根据自己机器的

实际网卡信息来看,不是固定的

关闭防火墙的开机自启动

systemctl restart firewalld

执行sysctl -p或者reboot重启命令

再次使用ifconfig进行验证,只剩下ipv4,ipv6消失了,关闭成功6

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值