This page looks best with JavaScript enabled

Nginx | 记录反向代理过程

当然是由于众所周知的原因...

 ·  ☕ 2 min read

先说废话

去年227导致ao3(archive of our own)被墙后,微博上开始有人做反向代理分享给网友,其中有位高一技术宅的反代让我印象深刻——网址竟然可以以www1开头!后来我才发现互联网≠万维网(www)…

如今我也是有服务器的人了,简单记录一下如何反向代理一个网站。毕竟有的时候把资料分享给墙内友人结果反被提醒网页打不开,也挺尴尬的…不过操作真的很简单,水一篇文章纪念一下nginx技能大进步!

安装Nginx

sudo -i   #切换至root用户
apt install nginx -y    #安装nginx

开启VPS的443端口:

ufw allow 443
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT

Nginx配置

参考【杂谈】如何优雅地搭建AO3的反代,以反向代理ao3为例,运行nano /etc/nginx/conf.d/ao3.conf,内容如下:

server {
    listen 443 ssl http2;
    server_name YOUR.DOMAIN;      
 
#proxy.conf
location /
{
    proxy_pass https://archiveofourown.org;
    proxy_set_header Host archiveofourown.org;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header REMOTE-HOST $remote_addr;
    
    #避免GZIP影响文字替换
    gzip off;
    proxy_set_header Accept-Encoding "";
    #无用资源替换为空值
    sub_filter "twitter.com"  " ";
    sub_filter "newrelic.com" " ";
    #将网页原域名替换为反代域名
    sub_filter "archiveofourown.org" "YOUR.DOMAIN";
    #将Jquery等引用的静态资源替换到国内CDN
    sub_filter "ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"        "lib.baomitu.com/jquery/1.9.0/jquery.min.js";
    sub_filter "ajax.googleapis.com/ajax/libs/jqueryui/1.10.0/jquery-ui.min.js"  "lib.baomitu.com/jqueryui/1.10.0/jquery-ui.min.js";
    #允许多文本替换 
    sub_filter_once off;
}
    #ssl setting here

}

archiveofourown.org改为你想要反向代理的网址,YOUR.DOMAIN改为你的域名,保存。

测试配置文件是否有错误(试运行):

nginx -t

若没有错误,生效新的配置文件并运行 Nginx,开机启动:

nginx -s reload
systemctl start nginx
systemctl enable nginx

配置SSL

去DNS服务商添加一条指向服务器ip,内容为域名的A记录,然后回到服务器运行以下命令:

sudo apt-get update
sudo apt-get install software-properties-common
sudo add-apt-repository universe
sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
sudo apt-get install certbot python3-certbot-nginx -y
sudo certbot --nginx

浏览器打开你的域名,此时应该已经成功了。Let‘s encrypt的证书90天到期后需要续期,届时只需运行sudo certbot --nginx按提示操作即可。


Roelxy
WRITTEN BY
Roelxy
新世紀摸魚戰士