本帖最后由 MeowLove 于 2018-8-25 09:57 编辑
简介
有时候,你会遇到这样的问题: 1. 我的服务器拥有IPV6但是无法通过IPV6访问(只能通过IPV4访问)。
2. Nginx没有监听IPV6,因此使用IPV6的用户无法访问我的网站。作为开发者我想要使IPV6可用,我需要它。(App Store要求应用程序必须支持IPV6)。
3. 我需要将cxthhhhh.com重定向到www.cxthhhhh.com,我想为网站强制启用HTTP(80)跳转HTTPS(443)。 4. 更新宝塔面板自身开启IPV6支持(理论上没问题,未测试,请反馈,不要在正式环境玩)
让我们开始
1. 我想为Nginx启用IPV6监听
②. 检查Nginx是否安装IPV6支持。【宝塔默认已开启–with-ipv6支持,此处可掠过】
SSH终端输入:[nginx -V],检查是否具有[–with-ipv6]输出,代表已经安装IPV6模块。
③. 编辑网站配置文件。
查找
listen 80;
listen 443 ssl http2;
替换为
listen 80;
listen [::]:80;
listen 443 ssl http2;
listen [::]:443 ssl http2;
按照图片这样配置
重启Nginx
④. 现在你就可以通过IPV6访问你的网站了。
2.强制为我的站点启用SSL
①. 在网站配置文件新增以下内容
if ($server_port !~ 443){
rewrite ^(/.*)$ https://$host$1 permanent;
}
②.重启Nginx,清除浏览器缓存,你会发现HTTP(80)网站自动跳转到HTTPS(443)。
3. 我要将网站301重定向到带www的子域名
①. 在网站配置文件新增以下内容
if ($host ~ '^cxthhhhh.com'){
return 301 https://www.cxthhhhh.com$request_uri;
}
*你需要修改cxthhhhh.com为你的域名 按照图片这样配置
②.重启Nginx,清除浏览器缓存,你会发现301重定向已经生效。
4. 为宝塔面板自身开始IPV6支持,理论上可行,宝塔PY版本是2.7,未测试,因为这个我用不到。
宝塔面板自身开启IPV6访问(网站的已经告诉你了),端口你改成自己用的试试。
python -c "import socket,SocketServer,CGIHTTPServer;SocketServer.TCPServer.address_family=socket.AF_INET6;CGIHTTPServer.test()" 8888
这个这个我没试过,但是理论上可行
非常棒,你已经学会了,快去试试吧
这篇文章发表在[CXT] Technical Blog | 技術博客,如果您需要转发分享,请注明出处。
|