首先,大家应该都知道nginx的优点。Nginx是一个小巧而高效的Linux下的Web服务器软件,与Apache相比,消耗资源更少,支持的并发连接,更高的效率,反向代理功能效率高、静态文件处理快等。但是它有一个非常大的缺点就是自己本身无法解析动态文件,如php,jsp等。
但是Nginx却是一个强大的反向代理服务器,可以将一些动态的语言反向代理到其他端口去。
对于php而言,nginx提供了两种方式访问后台,一种是使用fast-cgi的方式与php-fpm通信,另一种则是通过反向代理的方式。
之所以在大型的生产环境中,大家都是使用apache反向代理,因为fast-cgi方式在处理高并发时,经常出现502错误。为了解决这个问题,所以才出现使用apache反向代理动态文件的处理方式。
下面来介绍下具体配置方式
一、nginx与apache配置相同的网络根目录。
配置根目录的方法为:
nginx:
server {
root /var/www/html;
}
apache:
<VirtualHost *:80>
DocumentRoot /var/www/html
</VirtualHost>
二、nginx与apache配置完全相同的网站名字。
配置根目录的方法为:
nginx:
server {
server_name www.worldflying.cn;
root /var/www/html;
}
apache:
<VirtualHost *:80>
ServerName www.worldflying.cn
DocumentRoot /var/www/html
</VirtualHost>
三、nginx与apache配置不同的程序运行端口。
配置根目录的方法为:
nginx:
server {
listen 80;
server_name www.worldflying.cn;
root /var/www/html;
}
apache:
<VirtualHost *:8080>
ServerName www.worldflying.cn
DocumentRoot /var/www/html
</VirtualHost>
以及port.conf文件下修改listen 80为listen 8080
四、配置nginx的server,将后缀为php的文件反向代理到8080端口下。
location ~ \.php($|/) {
proxy_pass http://127.0.0.1:8080;
include proxy_params;
}
然后先重启apache,再重启apache就可以了。