NGINX,反向代理,翻墙

nginx,反向代理,翻墙

来源:Observer专栏杂记

研究翻墙也有一阵了,之前的成果可见利用低端VPS开设VPN代理翻墙利用博客空间开设翻墙代理
VPN的例子可见 http://vpn.unswbbs.com/
博客空间的例子见 http://proxy.app-base.com/

其实有了低端VPS之后,真是非常的自由,想干啥就能干啥,甚至包括实现迅雷离线下载功能。强烈推荐各位预算在$3/月以上的博主和站长们考虑一下低端VPS之ramhost,详情可见 奋战VPS一文

今天主要是从另一种角度来说翻墙。众所周知,被墙的网站毕竟是少数,如果为了少数网站使用代理或者VPN,那必将使得你的其他网页的访问也会通过代理或者VPN,虽然可以通过代理设置软件或者设置路由的办法来区别访问,但是并不是每个人都知道该怎么做。

与其为”人”提供代理,不如为”网站”提供代理来得一劳永逸。

这就是所谓的反向代理。

反向代理怎么做?有很多选择,例如squid,nginx。

squid是一个很不错的软件,但是要求的内存太高了,对吾等VPS用户简直是个资源噩梦,那么nginx这款刚进入我视线的高性能,轻量级,易配置的反向代理软件(同时也是http服务软件和IMAP,POP邮件服务端)就是不二的选择了

以ubuntu为例,安装nginx很简单,一行代码

sudo apt-get install nginx

然后是配置
配置的一般攻略可见nginx wiki
这篇文章我觉得不错Ubuntu Linux系统下轻松架设nginx+php服务器应用

或者见这篇文章
LNMP一键安装(Linux+Nginx+Mysql+Php5+Zend优化)

我这里假设你已经配置成功一台基础服务器,那么在配置的相应地方中加入

server {
listen 80;
server_name nb.proxy.app-base.com;
access_log /var/log/nginx/proxy.app-base.com.access_log;
error_log /var/log/nginx/proxy.app-base.com.error_log warn;
root /var/www/proxy.app-base.com/htdocs;
index index.html;
location / {
proxy_pass http://www.bullogger.com/;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}

访问 http://nb.proxy.app-base.com 试试看,一个牛博网的反向代理已经配置完毕
nginx的http proxy module的文档见http://wiki.nginx.org/NginxHttpProxyModule