[ZT]谈谈Nginx最简单的高效反向代理配置
Nginx在HTTP服务器应用中,比Apache的负载能力要高几倍,相信这个对于一般用户也已经相当了解,但Nginx除了可以作为一款高性能的HTTP应用服务器以外,它还是一款非常流行的反向代理服务器。这一点应用上,使用的人还不是很多。下面我们以Twitter的反向应用为例,介绍一下怎么用Nginx搭建一个反向代理。什么叫反向代理?
相信不少用户都用过代理服务器,特别是校园网用户。那么反向代理又是什么意思?
反向代理其实也属于代理服务器的一种,只不过它不像普通代理那样,需要用户填写IP地址,而是直接通过该代理服务器来接受Internet上的连接请求,然后反向将请求转发给内部(或其他)网络上的服务器,在收到服务器反馈以后,又将得到的内容反馈给请求的客户端。是不是感觉和我们用的代理服务器差不多?
小蓝觉得,此反向的最大区别,在于一般代理服务器,我们是知道它是代理服务器,并通过它来请求远程内容。而反向代理,我们很可能不太了解它是代理服务器,有时甚至认为它就是我们请求的内容。因此,反向代理,可以实现隐藏真正服务器的目的。
简单几行代码实现反向代理:
由于国内访问不了twitter.com,那么我们可以使用反向代理,达到间接访问的目的。比如搭建一个t.3cdma.com的“网站”,来间接实现访问twitter,当然,这只是一个案例,并不是真的搭建,不然IP很容易就会被“和谐”。
首先,需要将t.3cdma.com作A记录解释到服务器/VPS的IP上。如果反向访问的是比较敏感的内容,建议大家不要用简单的域名,尽量复杂一些,只要自己知道就可以了,比如使用ewqkerj34e2.3cdma.com,这样的域名很难猜测得到。
然后,修改Nginx的配置文件,添加一个类似虚拟主机配置的内容:
server
{
listen 80;
server_name t.3cdma.com;
location / {
proxy_pass http://twitter.com/;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
添加完成后保存一下文件,然后执行下面命令检查一下配置是否正常:
/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
最后,执行下面命令重启一下Nginx,让配置生效以后,就可以使用t.3cdma.com来访问twitter了。
kill -HUP `cat /usr/local/nginx/logs/nginx.pid`
http://www.3cdma.com/734.html
页:
[1]