Nginx反向代理镜像网站

[nginx] 2024-04-16 圈点967

摘要:Nginx反向代理镜像一个网站

Nginx反向代理镜像一个网站的思路还是挺简单的,正常情况下打开a站就返回a站的内容;如何用反向代理a站做另外一个b站,打开b站,实际返回a站的内容。


实现逻辑:

1,服务器上做一个反向代理a站的b站。即打开b站返回a站的内容。

效果如: 打开www.b.com/x/y/z.html    服务器上取  www.a.com/x/y/z.html 并返回内容。


2,示例配置:

upstream www_xoxxoo_com {

server 1.1.1.1:80;

}


server{

listen 80;

server_name www.xoxxoo.com;

proxy_set_header Host www.todo.com;

proxy_set_header x-forwarded-for $remote_addr;

location /{

proxy_pass http://www_xoxxoo_com

}

}


或者用下面的


server{

listen 80;

server_name www.domain.com;

location / {

proxy_pass http://www.todo.com/;

proxy_redirect off;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

}

}


并且可以使用第三方模块HttpSubModule进行关键词替换,可以将对方网站的域名,广告等替换成自己的。

插件地址: http://wiki.nginx.org/HttpSubsModule

 

location / {

subs_filter_types text/html text/css text/xml;

subs_filter st(\d*).example.com $1.example.com ir;

subs_filter a.example.com s.example.com;

}


当然我们也可以在nginx中开启缓存,这样就不需要每次都向源网站发起请求了。

sub_filter_once off;


完毕之后重启:nginx


反向代理  

感谢反馈,已提交成功,审核后即会显示