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