Nginx + php 目前有两种方式
1.nginx + apache
nginx 负责静态内容、反向代理和保持连接,apache则负责处理动态内容。
# Define Server document root
DocumentRoot /var/www/html/
# Define the virtual hos t
1.nginx + apache
nginx 负责静态内容、反向代理和保持连接,apache则负责处理动态内容。
2.nginx + fastcgi php-fpm
一、nginx + apache
采用Nginx前端Apache后端的服务器架构,这样可以很好地结合了Nginx高并发和静态页面高效率以及Apache稳定的动态页面处理特点,再也不用担心Nginx以FastCGI模式运行PHP时的502问题和Apache处理静态页面过慢、负载过高的问题。
这里不再重复nginx和apache 的安装步骤,直接上配置文件。
apache部分:
修改监听端口
Listen 8080
Listen 8080
增加虚拟主机
NameVirtualHost 127.0.0.1:8080
NameVirtualHost 127.0.0.1:8080
DocumentRoot /var/www/html/
# Define the virtual hos t
<VirtualHost 127.0.0.1:8080>
ServerName www.xxx.com
ServerAlias xx.com
DocumentRoot /var/www/html/
<Directory "/var/www/html/">
ServerName www.xxx.com
ServerAlias xx.com
DocumentRoot /var/www/html/
<Directory "/var/www/html/">
Options FollowSymLinks -Includes
AllowOverride All
Order allow,deny
Allow from all
</Directory>
RewriteEngine on
</VirtualHost>
AllowOverride All
Order allow,deny
Allow from all
</Directory>
RewriteEngine on
</VirtualHost>
nginx 部分:
修改配置文件
location / {
location / {
root /var/www/html; #apache的网站根目录 index index.php index.html index.htm; }
#将php文件请求分发给后端的apache location ~ .php$ { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://127.0.0.1:8080; }
#最简方式 #location ~ .php$ { # proxy_pass http://127.0.0.1; #}
#将图像和静态文件由nginx处理 location ~ .*.(htm|html|gif|jpg|jpeg|png|bmp|swf|ioc|rar|zip|txt|flv|mid| doc|ppt|pdf|xls|mp3|wma)$ { root /var/www/html; expires 15d; 更新时间 15天 } #将js文件由nginx处理 location ~ .*.(js|css)$ { expires 1h; 更新时间 1小时
}
# 如果你需要客户端缓存的内容以及媒体,图片等文件固定放置一些目录下的话,就把上面那个
# location注释掉,用下面这种方式
# location ~ ^/(images|javascript|js|css|flash|media|static)/ {
# expires 2d;
#}
# location注释掉,用下面这种方式
# location ~ ^/(images|javascript|js|css|flash|media|static)/ {
# expires 2d;
#}