使用Nginx反代其他网站 | 爱K6分享站
  • 欢迎访问爱K6分享站,本站定期分享各种网络优惠信息,实用绿色软件,服务器&VPS优惠信息;推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入爱K6分享站

使用Nginx反代其他网站

Tech admin 来源:转自玩个机吧 8个月前 (11-20) 164次浏览 已收录 0个评论 扫描二维码

使用 Nginx 反代其他网站

1.什么是反向代理镜像网站

小黑去饭店吃饭,小白是饭店的服务员,小红是饭店的厨师。小黑点了一道酸辣土豆丝,想问什么时候能上菜。

直接访问:

小黑直接去厨房问小红什么时候能做好,小红说十分钟后。

反向代理:

因某种原因,小黑去不了厨房了,但是小白可以去厨房。
小黑问小白什么时候能做好,小白走进厨房询问小红什么时候能做好。
小红告诉小白大约十分钟,小白走回小黑面前,告诉小黑需要十分钟。

2.反向代理操作步骤

假设需要用域名 bbbbb.com 去反向代理镜像网站 aaaaa.com

3.反向代理镜像网站

看到第一步你会发现,上面的步骤和新建一个 WordPress 网站操作步骤一样,只是在最后一步创建虚拟主机后没有上传网站程序。

3.1 HTTP 镜像

HTTP 镜像适用于:添加虚拟主机时选择不启用 SSL 证书,并且被镜像的域名也没有启用 SSL 证书
打开/usr/local/nginx/conf/vhost
找到 bbbbb.com.conf 下载到本地
打开 bbbbb.com.conf 删除所有内容,然后把以下内容复制到 bbbbb.com.conf

server
{
listen 80;
server_name bbbbb.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 aaaaa.com bbbbb.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://aaaaa.com;
proxy_set_header Host aaaaa.com;
proxy_pass http://aaaaa.com;
proxy_set_header Accept-Encoding "";
}
}

 

然后把上述代码中的 aaaaa.com 改为被镜像的网站,
bbbbb.com 改为镜像网站所用的域名
因为我的网站都不带 WWW,所以示例也没有 WWW,如果你的有 WWW,请自行就改吧

修改完毕保存,把需改好的 bbbbb.com.conf 上传到服务器进行覆盖替换
最后执行:/etc/init.d/nginx restart 重启 nginx,使其生效。

3.2 HTTPS 镜像

HTTPS 镜像适用于:添加虚拟主机时选择启用 SSL 证书,并且被镜像的域名也启用了 SSL 证书
打开/usr/local/nginx/conf/vhost
找到 bbbbb.com.conf 下载到本地
打开 bbbbb.com.conf ,复制文中的如下证书内容(因域名不同,部分内容会有差别),保存到另一个文档中:

ssl on;
ssl_certificate /etc/letsencrypt/live/bbbbb.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/bbbbb.com/privkey.pem;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers "EECDH+CHACHA20:EECDH+CHACH:RSA+3DES:!MD5";
ssl_session_cache builtin:1000 shared:SSL:10m;
# openssl dhparam -out /usr/local/nginx/conf/ssl/dhparam.pem 2048
ssl_dhparam /usr/local/nginx/conf/ssl/dhparam.pem;
add_header Strict-Transport-Security "max-age=31536000";

 

然后清空 bbbbb.com.conf,把下方内容全部复制到被清空的 bbbbb.com.conf

server
{
listen 80;
listen 443 ssl;
server_name bbbbb.com ;
index index.html index.htm index.php default.html default.htm default.php;
root bbbbb.com;
ssl on;
ssl_certificate /etc/letsencrypt/live/bbbbb.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/bbbbb.com/privkey.pem;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers "EECDH+CHACHA20:EECDH+CHACH:RSA+3DES:!MD5";
ssl_session_cache builtin:1000 shared:SSL:10m;
# openssl dhparam -out /usr/local/nginx/conf/ssl/dhparam.pem 2048
ssl_dhparam /usr/local/nginx/conf/ssl/dhparam.pem;
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 aaaaa.com bbbbb.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 https://aaaaa.com;
proxy_set_header Host aaaaa.com;
proxy_pass https://aaaaa.com;
proxy_set_header Accept-Encoding "";
}
}

 

使用 Nginx 反代其他网站
修改 ABC 三处的内容
A 处,把 bbbbb.com 替换为你用来镜像的域名
B 处,删 B 处内容,把刚才单独保存的证书内容复制到 B 处
C 处,把 bbbbb.com 替换为你用来镜像的域名,把 aaaaa.com 替换为被镜像的域名。

因为我的网站都不带 WWW,所以示例也没有 WWW,如果你的有 WWW,请自行就改吧,修改完毕保存,把需改好的 bbbbb.com.conf 上传到服务器进行覆盖替换。
最后执行:/etc/init.d/nginx restart 重启 nginx,使其生效。

4.小的补充

反向代理的前提,是用来镜像的服务器能访问被镜像的服务器。如果被镜像的域名在国内被墙了,那么你购买国内的服务器去镜像,肯定是失败的,因为国内的服务器无法访问被国内墙掉的网站。


爱 K6 分享站, 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:使用 Nginx 反代其他网站
喜欢 (0)
关于作者:
一个小屌丝
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址