略去本地端口托管网站教程,这个网上很多。
ipv6公网地址获取
之前本站一直托管到github上去就是因为没有国内公网的ip,想获取此ip还需要购买服务器,这让本地的服务器发挥不了价值。
现在让互联网三大运营商扯根家用wifi的线一般都带有ipv6地址,不需要再苦求一个ipv4地址了。
可以到此网站查看自己是否拥有ipv6地址以及是否能够访问ipv6地址的网站:https://ipv6ready.me/
ipv6地址格式示例:0000:0000:0000:0000:0000:0000:0000:0001 (这是回环地址,也可简写为::1)
尝试断开wifi,ping此地址,如果连接正常那么可确信你有一个可以从公网访问的ip地址
ipv6地址访问的格式为:http://[0000:0000:0000:0000:0000:0000:0000:0001] (举例) 也可以添加端口号
绑定域名
可以在阿里云上买个域名,然后有关域名认证审核以及解析为ip的引导阿里云做的很清楚,不再赘述
那么现在访问 http://你的域名:你的端口号 就已经能正确访问到你开放的端口了
如果访问被拒绝,可能 1 你在此端口并没有托管网站 2 你没有开放防火墙 开放防火墙方法可以自行寻找教程
除此以外,如果运营商封了80或其他端口(运营商会封掉ipv4很多常见端口),那就只能更换端口,因为这个封锁是在路由器处进行的,如果你的路由管理界面没有端口转发相关操作,那可能会很难
nginx反向代理
它的作用是将80端口访问的请求转发到其他端口,比如说你的hexo博客传在4000,那么访问80端口就直接打开了博客主页
使用此代理的原因:1 访问某域名时默认访问的是80端口而不是其他端口 如果你不想始终后面添加 :端口号的话 2 将80端口直接开放危险性较高,使用反向代理避免赋予端口托管任务的权限
看这一篇 https://zhuanlan.zhihu.com/p/451825018
但要注意我们的ipv6要使用listen [::]:80;
可以对我以下内容稍作更改后粘贴到你的配置文件中
server {
listen 80;
listen [::]:80;
server_name sanqi.online; #这里改为你的域名
location / {
proxy_pass http://localhost:4000; #这里要写你的端口号
# 重要:设置代理头信息
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# WebSocket支持(如果博客需要)
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
# 超时设置
proxy_connect_timeout 60s;
proxy_send_timeout 60s;
proxy_read_timeout 60s;
}
# 可选的:静态文件缓存优化
location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {
proxy_pass http://localhost:4000;
proxy_set_header Host $host;
proxy_cache_valid 200 302 1h;
proxy_cache_valid 404 1m;
}
}
那么到这里已经可以直接访问域名来访问到网站了。
其他问题
家用ipv6地址是会变的,使用DDNS—go来动态调整域名解析地址
此方悬停