详细的示例反代网站示例

[nginx] 2024-03-28 圈点114

摘要:详细的示例反代别人的网站以example.com反代www.baidu.com并替换内容为例;内容仅限于个人研究,不得用于从事非法事务。

详细的示例反代别人的网站以example.com反代www.baidu.com并替换内容为例:

修改nginx.conf


user www;

worker_processes 2;

#error_log logs/error.log;

#error_log logs/error.log notice;

error_log logs/error.log info;

pid logs/nginx.pid;

events {

use epoll;

worker_connections 1024;

}

http {

… #此处省略一万字

proxy_connect_timeout 5;

proxy_read_timeout 60;

proxy_send_timeout 5;

proxy_buffer_size 16k;

proxy_buffers 4 64k;

proxy_busy_buffers_size 128k;

proxy_temp_file_write_size 128k;

proxy_temp_path /home/cache/temp;

proxy_cache_path /home/cache/one levels=1:2 keys_zone=cache_one:3m inactive=7d max_size=1g;

server {

listen 80;

server_name example.com;

index index.php;

#默认首页

location / {

subs_filter_types text/html text/css text/xml;

subs_filter www.baidu.com example.com gi;

#替换模块,下文详解。

proxy_cache_key "$scheme://$host$request_uri";

#缓存key规则,用于自动清除缓存。

proxy_cache cache_one;

#缓存区名称,必须与前面定义的相同

proxy_cache_valid 200 304 3h;

proxy_cache_valid 301 3d;

proxy_cache_valid any 10s;

#200 304状态缓存3小时

#301状态缓存3天

#其他状态缓存(如502 404)10秒

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

#向后端传递访客ip

proxy_set_header Referer http://www.baidu.com;

#强制定义Referer,程序验证判断会用到

proxy_set_header Host www.baidu.com;

#定义主机头

proxy_pass http://1.2.3.4;

#指定后端ip

proxy_set_header Accept-Encoding "";

#清除编码

proxy_cache_use_stale invalid_header error timeout http_502;

#当后端出现错误、超时、502状态时启用过期缓存

}

}

}


温馨提示:如果替换的内容里面有中文,请将conf文件保存为utf-8 without BOM编码。

关于ngx_http_substitutions_filter_module的说明:(本模块是中国人写的,但是说明只有英文版,中文翻译如下)

描述 nginx_substitutions_filter 是一个nginx替换模块,就跟apache的 mod_substitute模块一样

使用距离

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;

}


涉及指令:

* subs_filter_types

* subs_filter


subs_filter_types 

语法: *subs_filter_types mime-type [mime-types] *

默认: *subs_filter_types text/html*

内容: *http, server, location*


*subs_filter_types* 

是用来指定替换文件类型的 默认仅仅替换text/html类型的文件。

*如果反代的论坛出现登录跳转源站之类的问题,请检查这个项目。

proxy_set_header Accept-Encoding “”;


subs_filter 

语法: *subs_filter source_str destination_str [gior] *

默认: *none*

内容: *http, server, location*


*subs_filter* 

是用来替换文本的,可以使用正则

* *g*(默认):替换匹配项。

* *i*:区分大小写的匹配

* *o*: 只匹配发现的第一个。

* *r*: 正则。

反代网站  

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