首页 > Linux系统 > system > nginx反向代理教程与实例
2011
10-02

nginx反向代理教程与实例

nginx严格定义上来说是一个不折不扣的反向代理服务器,用来做前端非常不错!
首先安装nginx

yum install gcc g++ vim libncurses5-dev make libxml2-dev
 yum -y install subversion
 yum install libpcre3 libpcre3-dev libcurl4-openssl-dev
 wget -c  http://nginx.org/download/nginx-1.0.5.tar.gz 
tar -zxvf nginx-1.0.5.tar.gz
 wget -c http://wiki.nginx.org/images/5/51/Nginx-accesskey-2.0.3.tar.gz
 tar -zxvf 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升级的方法来完成!

编译参数里面的

--with-http_sub_module --add-module=$curdir/substitutions4nginx-read-only --add-module=$curdir/nginx-accesskey-2.0.3

保留其他自行斟酌更改,这里就不罗嗦了!

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

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

然后是nginx.conf的配置,基本配置就不阐述了
实现方法:

比如我想在VPS上建一个v.xsdou.com的域名用来反向代理访问被国内墙掉的youtube,首先在域名注册商那里的域名管理上为域名v.xsdou.com添加A记录到我的VPS的IP上,再在VPS上修改Nginx的配置文件,添加如下:

server
	{
        listen 80;
        server_name v.xsdou.com;  #绑定的域名
        root /var/www/html;  #网站目录(搭配lnamp的时候有用处!)
        access_log off;		#off 关闭日志
location / {
subs_filter 'www.youtube.com' 'v.xsdou.com' gi;  #substitutions4nginx替换 (使用方法参照官方)
subs_filter 'youtube' 'youtube中国' 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.youtube.com;		#强制定义Referer,程序验证判断会用到
proxy_set_header   Host www.youtube.com;  				#定义主机头,如果目标站点绑定的域名个server_name项的吻合则使用$host
proxy_pass http://74.125.227.45;						#指定目标,建议使用IP或者nginx自定义池
proxy_set_header Accept-Encoding "";					#清除编码
        }
}

添加好后,先执行:/usr/local/nginx/sbin/nginx -t 检查配置是否正常,如果显示:the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok configuration file /usr/local/nginx/conf/nginx.conf test is successful 则正常,否则按错误提示修改配置。

再执行 kill -HUP `cat /usr/local/nginx/logs/nginx.pid` 使配置生效,域名解析生效后就可以通过v.xsdou.com 访问youtube了。
更多详细Proxy设置参考nginx官方wiki说明:http://wiki.nginx.org/HttpProxyModule

最后编辑:
作者:admin
捐 赠如果您觉得这篇文章有用处,请支持作者!鼓励作者写出更好更多的文章!

nginx反向代理教程与实例》有 1 条评论

  1. liusishuo 说:

    刘思铄的博客:www.liusishuo.com

留下一个回复