域名被墙查询

当前位置: 主页 > 域名被墙 >

结合Nginx反向代理搭建域名被墙网站的镜像网站

时间:2020-11-23 18:56来源:域名被墙处理 作者:域名查墙 点击:
前几天域名被墙后搭建了一个镜像网站,有人问我镜像网站怎么搭建的,是不是要全部重新建一个站?
  前几天域名被墙后搭建了一个镜像网站,有人问我镜像网站怎么搭建的,是不是要全部重新建一个站?其实建立镜像网站还是比较容易的,本文就来介绍下如何结合Nginx的反向代理功能搭建一个域名被墙网站的镜像网站。
 
  什么是反向代理
 
  稍微解释一下什么是反向代理,更详细的自己去问Google。
 
  既然有反向代理,那么肯定就有正向代理。正向代理其实就是我们常说的代理,举个例子,SS就是正向代理,国内(客户端)访问谷歌(服务器端),无法打开(GFW V587),于是我们把请求交给国外的代理服务器,而这个代理服务器可以访问谷歌(GFW再V587也管不了国外的事啊),于是这个代理服务器在接收到你的请求后,请求了谷歌,之后把谷歌的响应结果再返回给你,这就是正向代理。而反向代理是什么呢?你(客户端)在打10086找移动客服的时候(移动真贵,建议不用),不用考虑要找哪个客服(服务器端),你只是要找到客服就行,于是打10086再按0的操作就是一个反向代理,把你的请求代理到每一个客服那里去。
 
  总结一句话,正向代理隐藏真实客户端,反向代理隐藏真实服务端。
 
  镜像网站配置
 
  首先是镜像网站域名:例如我的334t.win,这个就是镜像网站的域名地址。(NameSilo域名购买,com域名首年$5.99)
 
  接着是镜像网站VPS:必须要明确的是,这个VPS必须是国外的VPS,因为国内的VPS无法访问你被墙的域名。(Vultr最新优惠信息汇总 or 搬瓦工最新优惠码汇总)
 
  最后就是LNMP环境,虽然你的镜像网站不需要任何数据,但是基本的网络环境还是需要的。(手动在Ubuntu上配置Nginx+MySQL+PHP7 or LNMP环境一键安装包)
 
  配置镜像网站
 
  首先说一下我的原站的配置。
 
  服务器在Linode的弗里蒙特,最低配置5刀/月的(因为有信用卡新注册Linode就送20美元)。解析放在了Cloudflare,开通了免费版的全球CDN,毕竟Cloudflare的CDN除了国内,其他速度都很快。
 
  配置HTTP镜像网站
 
  如果你的原站没有开通https,只是http的,举个例子,用http://www.abc.com镜像http://www.baidu.com,那么只需要修改Nginx的配置文件如下:
 
  server
 
  {
 
  listen 80;
 
  server_name www.abc.com;
 
  if ($http_user_agent ~* (baiduspider|360spider|haosouspider|googlebot|soso|bing|sogou|yahoo|sohu-search|yodao|YoudaoBot|robozilla|msnbot|MJ12bot|NHN|Twiceler)) {
 
  return  403;
 
  }
 
  location / {
 
  sub_filter www.baidu.com www.abc.com;
 
  sub_filter_once off;
 
  proxy_set_header X-Real-IP $remote_addr;
 
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 
  proxy_set_header Referer http://www.baidu.com;
 
  proxy_set_header Host www.baidu.com;
 
  proxy_pass http://www.baidu.com;
 
  proxy_set_header Accept-Encoding "";
 
  }
 
  }
 
  第二段代码的作用的防止搜索引擎spider收录你的站(抄的),这样你原站的收录就不会因为有镜像站而减少。
 
  配置HTTPS镜像网站
 
  如果你的站是https的,那么你的http代理就会被重定向到https(例如我的站),那么就要在Nginx配置文件里写好SSL证书,直接镜像HTTPS。我的镜像站的SSL证书用的是letsencrypt免费HTTPS证书,以https://www.334t.win镜像https://www.334t.com为例,Nginx配置如下:
 
  server
 
  {
 
  listen 80;
 
  listen 443 ssl;
 
  ssl on;
 
  ssl_certificate /etc/letsencrypt/live/334t.win/fullchain.pem; # managed by Certbot
 
  ssl_certificate_key /etc/letsencrypt/live/334t.win/privkey.pem; # managed by Certbot
 
  ssl_session_cache shared:SSL:10m;
 
  ssl_session_timeout  10m;
 
  proxy_ssl_server_name on;
 
  proxy_ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
 
  server_name www.334t.win;
 
  add_header Strict-Transport-Security "max-age=31536000";
 
  if ( $scheme = http ){
 
  return 301 https://$server_name$request_uri;
 
  }
 
  if ($http_user_agent ~* (baiduspider|360spider|haosouspider|googlebot|soso|bing|sogou|yahoo|sohu-search|yodao|YoudaoBot|robozilla|msnbot|MJ12bot|NHN|Twiceler)) {
 
  return  403;
 
  }
 
  location / {
 
  sub_filter www.334t.com www.334t.win;
 
  sub_filter_once off;
 
  proxy_set_header X-Real-IP $remote_addr;
 
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 
  proxy_set_header Referer https://www.334t.com;
 
  proxy_set_header Host www.334t.com;
 
  proxy_pass https://www.334t.com;
 
  proxy_set_header Accept-Encoding "";
 
  }
 
  }
 
  server {
 
  listen 443 ssl;
 
  server_name 334t.win;
 
  return 301 https://www.334t.win$request_uri;
 
  ssl_certificate /etc/letsencrypt/live/334t.win/fullchain.pem; # managed by Certbot
 
  ssl_certificate_key /etc/letsencrypt/live/334t.win/privkey.pem; # managed by Certbot
 
  }
 
  server {
 
  if ($host = 334t.win) {
 
  return 301 https://$host$request_uri;
 
  } # managed by Certbot
 
  listen 80;
 
  listen [::]:80;
 
  server_name 334t.win;
 
  return 404; # managed by Certbot
 
  }
 
  我是334t.win转到www.334t.win,非http转到https。
 
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
推荐内容
友情链接 域名查询域名检测工具网站查询网