四师兄曾经转载过一篇《Nginx如何反向代理并替换URL》,尽管没有去偷别人站点的内容,但基本过程已然实现。昨天有人问公乘,如何在军哥lnmp一键包的基础上按照那个教程,利用nginx的反代实现小偷功能,公乘在这里简单写一下思路。
安装一些预备软件
yum -y --noplugins install wget zip
yum -y --noplugins install unzip
yum -y --noplugins install gcc
yum -y --noplugins install make
yum -y --noplugins install pcre-devel
yum -y --noplugins install openssl-devel
yum -y install subversion
下载软件
wget -c http://www.nginx.org/download/nginx-1.0.8.tar.gz
wget -c http://wiki.nginx.org/images/5/51/Nginx-accesskey-2.0.3.tar.gz
svn checkout http://substitutions4nginx.googlecode.com/svn/trunk/ substitutions4nginx-read-only
编译软件
tar -zxf Nginx-accesskey-2.0.3.tar.gz
tar zxf nginx-1.0.8.tar.gz
cd nginx-1.0.8
./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-ipv6 --with-http_gzip_static_module --with-ipv6 --with-pcre --with-http_sub_module --add-module=/root/substitutions4nginx-read-only --add-module=/root/nginx-accesskey-2.0.3
如果编译没有错误,然后执行:make 但不要make install
编译完,在objs目录下有一个nginx执 行文件,先备份下原来老的nginx文件,执行:mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old ,再把新objs下的nginx cp到sbin下,执行:cp objs/nginx /usr/local/nginx/sbin/nginx
执行 /usr/local/nginx/sbin/nginx -t 测试下,显示没有问题
再执行:make upgrade
执行:/usr/local/nginx/sbin/nginx -V 看一下,模块已经编译进去了。
Nginx添加上模块,需要执行:killall nginx 再执行:/usr/local/nginx/sbin/nginx 不能用平滑重启。
nginx在 /usr/local/nginx 下面
配置 nginx.conf
server
{
listen 80;
server_name t.ldomain.com; #绑定的域名
root /home/www/html; #网站目录(搭配lnamp的时候有用处!)
access_log off; #off 关闭日志
location / {
subs_filter '百度一下,你就知道' '四师兄' gi; #substitutions4nginx替换 (使用方法参照官方)
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; #强制定义Referer,程序验证判断会用到
proxy_set_header Host www.baidu.com; #定义主机头,如果目标站点绑定的域名个server_name项的吻合则使用$host
proxy_pass http://127.0.0.1; #指定目标,建议使用IP或者nginx自定义池
proxy_set_header Accept-Encoding ""; #清除编码
}}
或者
server_name www.173silk.com;
location / {
subs_filter ca-pub-对方gg用户 ca-pub-替换成你的;
subs_filter 6121088089 612108343455;
//把google ad 的广告号 6121088089 改成你自己的,你懂的!:D
proxy_pass http://kangxiaowei.com; //反向本站为例。
ndex index.html index.htm;
}
记住subs_filter 命令的格式,你想替换设么就随你了。
另外, 反向代理的个数是不限制的。只要你掌握了规则,一个网站下可以包含n多个网站的镜像。 一个nginx 上也可以跑 n多个网站。就看你自己怎么运用了。