[nginx] 2025-05-03 圈点375
摘要: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