nginx反代跳过网站备案

前言

今天搞了个国内的服务器,然后想搞个域名指向服务器,但是我身份证过期了,一星期前申请了换证还没那么快到,所以备案不了。

怎么办呢?

突然想起我有一台用学生认证白嫖的新加坡服务器,众所周知,域名指向国外的服务器是不用备案的,还可以加 https,所以我灵机一动:可以用域名指向新加坡的服务器,再用代理或者其他手段把该连接交给国内的服务器,就相当于用新加坡的服务器当跳板机,访问国内的服务器。

拓扑图如下

目前就想出来了两个方案:

  • 方案一:新加坡服务器安装 nginx,通过反向代理把请求连接转发给国内服务器
  • 方案二:用 frp 内网穿透

方案一我试过了是可行的,没有跨域的问题,网上查了下说别人也是主要用反向代理来解决跨域问题的;方案二的话还没试过,不知道。

动手

  1. 首先国内服务器安装好博客,并能通过公网 IP 访问网站
  2. 新加坡服务器安装 nginx,我这里用的是包安装
apt install nginx -y

编辑配置文件,增加下面这一段

server {
#SSL 访问端口号为 443
listen 443 ssl;
#填写绑定证书的域名
server_name www.admsec.top;
#证书文件名称
ssl_certificate /opt/cert/xxx.xxx.xxx.pem;
#私钥文件名称
ssl_certificate_key /opt/cert/xxx.xxx.xxx.key;
ssl_session_timeout 5m;
#请按照以下协议配置
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
#请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
location / {
#配置反向代理 因为hexo默认端口为4000,故使其指向
proxy_pass http://xxx.xxx.xxx.xxx/;
}
}
server {
listen 80;
#填写绑定证书的域名
server_name xxx.xxx.xxx;
#把http的域名请求转成https
return 301 https://xxx.xxx.xxx;
}
  1. 启动 nginx,成功!