本文编写于 1690 天前,最后修改于 1690 天前,其中某些信息可能已经过时。

大多数家庭宽带都封禁了80和443,防止用户在家里未经许可对外搭建HTTP服务
可是呢……我就是觉得数据放在自己手里安心,不用担心欠费被删机,还可以想怎么搞就怎么搞,也是这次博客大搬家的初衷
好歹公网IP还是会有的,端口映射出来,天天访问的时候加个端口号也不是个事儿
那咋整?用一台开着80 443的机子反向代理呗
抢来Lensual的博客服务器当跳板,开搞

什么是反向代理

有反向代理,就有正向代理
正向代理也就是平时用的那个嘛咳咳,用户把数据交给代理,代理负责将数据转给目标,这样就隐藏了用户的身份
反向代理就是反过来,用户向代理请求数据,代理把请求转给真正的目标,这样就隐藏了真实服务器的身份

在这里,我们就利用反向代理这一特性,表面上访问代理的80 443,难记难打的端口什么的,就让nginx去搞好了
如果家里没IPv6,还可以利用跳板的v6实现双栈wwww
需要注意的一点是,既然是反向代理,那么SSL证书应该是要部署在代理服务器上才对

直接放出配置文件吧(喂

好像真的没啥好说明的……写就完事儿了

server {
    listen 80;
    listen [::]:80;
    server_name senayuki.top www.senayuki.top;
    # HTTP流量跳转到www的HTTPS
    return 301 https://www.senayuki.top$request_uri;
}

server {
    listen 443;
    listen [::]:443;
    server_name senayuki.top;
    # @跳转到www
    return 301 https://www.senayuki.top$request_uri;
}

server {
    listen 443;
    listen [::]:443;
    server_name www.senayuki.top;
    # SSL设置
    ssl on;
    ssl_certificate fullchain.pem;
    ssl_certificate_key privkey.pem;
    # 访问/
    location / {
        client_max_body_size 1024m;
        proxy_redirect off;
        index index.html index.htm;
        # 反向代理到
        proxy_pass http://origin:port;
        # 拷贝请求头
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $host;
        # 将http重写到https(其实没必要
        rewrite ^http://$host(.*)$ https://$host$1 permanent;
    }
}