/ 中存储网

Nginx的反向代理配置方法

2013-10-27 22:21:01 来源:IT技术网

Nginx 的反向代理实在是太好用了,无名屡试不爽。除了使用反向代理上一些不能上的网站如”Twitter”外,山寨或克隆对方网站也很过瘾。若在反向代理的过程 中把源网站内的链接也给替换了,貌似就像是小偷站一样,但是比做小偷站实现起来更简单,因为不用任何网站程序,配置Nginx反向代理就可以了。

若使用官方的with-http_sub_module模块只能匹配1条规则,所以使用第三方模块HttpSubModule可以匹配多条规则。

使用SVN下载模块源码:

svn checkout http://substitutions4nginx.googlecode.com/svn/trunk/ substitutions4nginx-read-only

编译参数:

--add-module=模块源码路径

Example

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;

}

官方文档:http://wiki.nginx.org/HttpSubsModule#Installation

Nginx反向代理做小偷站只能玩玩的,使用Nginx反向代理功能更多是用在负载均衡等方面。

http://none.name/nginx-reverse-proxy/


四师兄利用以下提示,在vps已部署的lnmp环境下测试通过。

首先四师兄升级nginx为1.0.5

然后编译,绿色为四师兄执行,红色为未执行

aptitude install gcc g++ vim libncurses5-dev make libxml2-dev

apt-get -y install subversion

apt-get install libpcre3 libpcre3-dev libcurl4-openssl-dev

wget -c  http://nginx.org/download/nginx-1.0.5.tar.gz 

tar -zxf nginx-1.0.5.tar.gz

wget -c http://wiki.nginx.org/images/5/51/Nginx-accesskey-2.0.3.tar.gz

tar -zxf Nginx-accesskey-2.0.3.tar.gz

svn checkout http://substitutions4nginx.googlecode.com/svn/trunk/ substitutions4nginx-read-only

curdir=$(pwd)

cd nginx-1.0.5 

./configure --user=nobody --group=nobody  --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --pid-path=/var/run/nginx.pid  --conf-path=/etc/nginx/nginx.conf   --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-ipv6 --with-pcre --with-http_sub_module --add-module=$curdir/substitutions4nginx-read-only --add-module=$curdir/nginx-accesskey-2.0.3   

make 

make install

nginx安装过程就这样了,如果已经安装过nginx的可以搜索下nginx升级的方法来完成!

安装substitutions4nginx提示错误:-bash: svn: command not found

需安装subversion 安装命令yum -y install subversion

四师兄执行时,提示:

Error Downloading Packages:

subversion-1.6.11-7.el5_6.4.i386: Insufficient space in download directory /var/cache/yum/base/packages

这个错误提示意味着磁盘空间不足,查看:

yum clean all后用该命令看useage还有多少

df -h /var/cache/yum/updates/packages

编译参数里面的--with-http_sub_module --add-module=$curdir/substitutions4nginx-read-only --add-module=$curdir/nginx-accesskey-2.0.3 保留其他自行斟酌更改,这里就不罗嗦了!

substitutions4ngin是用来做替换,支持正则式!

nginx-accesskey和本文关系不大,主要作用是用于封IP访问和防盗链之用!

然后是nginx.conf的配置,基本配置就不阐述了,下面贴一个反向hostloc论坛的实例

server

{

listen 80;

server_name kvm.domain.net; #绑定的域名

root /var/www/html; #网站目录(搭配lnamp的时候有用处!)

access_log off; #off 关闭日志

location / {

subs_filter 'www.hostloc.com' 'bbs.kvm.la' gi; #substitutions4nginx替换 (使用方法参照官方)

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.hostloc.com; #强制定义Referer,程序验证判断会用到

proxy_set_header Host www.hostloc.com; #定义主机头,如果目标站点绑定的域名个server_name项的吻合则使用$host

proxy_pass http://174.127.189.179; #指定目标,建议使用IP或者nginx自定义池

proxy_set_header Accept-Encoding ""; #清除编码

}

}

更多详细Proxy设置参考nginx官方wiki说明:http://wiki.nginx.org/HttpProxyModule