nginx 配置反向代理(Apache+nginx)
nginx 由于其高效的并发处理能力,而开始被越来越多的人接受和认可,现在很多网站已经完全用nginx代替apache来处理静态 页面,但是动态页面的处方面,apache还是有着自己独到之处的。
下面说下何为反向代理,以及为何进行反向代理。按照百科的介绍:反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。说得简明点,按照我的理解,反向代理就是一个服务器负责接收外网的请求,但自己不处理,而是告诉其他的内网服务器去处理,并把人家处理的结果返回给用户。从用户角度来看,请求就是这个代理服务器来处理的,实际上他就是转发了一下,返回人家的结果。
那么用反向代理的作用有是什么呢?按照百科的说法:
可以允许客户机安全地连接到代理服务器,从而有利于安全地传输信息(如信用卡号)。
说成易懂的意思就是:一是安全,一是一定程度提高系统的开销。
下面介绍如何进行反向代理,这里给大家一个例子,感兴趣的可以自己试验一下。
首先安装nginx并绑定到80端口,安装apache绑定监听8080端口。然后设置nginx服务器目录为www_nginx,apache服务器的目录为www_apache,分别在2个目录中新建一个index.html文件,里面分别写上nginx,apache2个单词就足矣。
然后我们在配置nginx的配置文件,一般为nginx.conf这个文件,修改里面的配置信息。
location / {
proxy_pass 127.0.0.1:8080;
}
同时启动nginx和apache,访问127.0.0.1的时候,你会发现一个神奇的事情,尽然输出apache,明明nginx服务器目录里面根本没有输出,而是apache,那是因为nginx进行了反向代理,去找apache监听的8080端口要内容,然后apache返回给他处理后的结果。
这是一个简单的例子,实际中我们可以让nginx处理静态页面,处理图片,css, js等文件,而让apache处理动态文件。比如我们可以这样修改:
location ~ \.php$ {
proxy_pass 127.0.0.1:8080;
}
这样只是php文件才交给apache处理,其他的还是nginx来处理。