配置nginx的PHP环境
- 安装nginx
sudo apt-get install nginx
- 安装php
sudo apt-get install php5-cli php5-cgi php5-fpm php5-mcrypt
- 配置nginx的虚拟主机
在/etc/nginx/sites-available/default中添加
server{ listen 90; index index.php; root /usr/share/nginx/mytest/ access_log /usr/share/nginx/mytest/acc.log combined; location ~ .php$ { fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; include fastcgi_params; } }
sudo /etc/init.d/nginx restart
- 测试php是否支持
编辑"/usr/share/nginx/mytest/index.php"<?php phpinfo(); ?>
- 如果启动nginx遇到失败等情况,可以查看nginx的错误日志,在
/var/log/nginx/error.log
完全卸载nginx
在配置nginx做实验时配置错了,导致访问不了虚拟主机。一狠心把nginx的配置文件目录(/etc/nginx)都删除了,而且我没有备份这些配置文件,因此想重装nginx。
- 本来以为直接使用如下apt-get指令
sudo apt-get --purge remove nginx sudo apt-get install nginx
- 于是autoremove
sudo apt-get --purge remove nginx sudo apt-get autoremove sudo apt-get install nginx
awk: cannot open /etc/nginx/nginx.conf (No such file or directory)
conf.d sites-available sites-enabled
- 于是
sudo apt-get --purge remove nginx sudo apt-get autoremove dpkg --get-selections|grep nginx
nginx-common deinstall
sudo apt-get --purge remove nginx-common sudo apt-get install nginx
反向代理或负载
- 这涉及到upstream指令,在“/etc/nginx/sites-available/default”设置一组proxy_pass
upstream first_proxy{ server 10.9.31.89:5001 weight=4 max_fails=2 fail_timeout=30s; }
- 在虚拟机主机配置中指定proxy_pass
server{ listen 99; location / { #如果后端服务器返回502、504执行超时都错误则转发到upstream负载均衡池中的另一台服务,实现故障转移。 #proxy_next_upstream http_502 http_504 error timeout invalid_header proxy_pass http://first_proxy; proxy_set_header Host www.yourdomain.com; proxy_set_header X-Forwarded-For $remote_addr; } }
- 然后就可以通过http://localhost:99/来访问10.9.31.89:5001的服务了。这里只配置了一个后端server,如果配置多个,则实用简单的轮询来达到负载的效果。