debian nginx php环境搭建_debian+nginx+php环境实现反向代理和负载均衡教程

更新时间:2019-08-08    来源:nginx    手机版     字体:

【www.bbyears.com--nginx】

配置nginx的PHP环境

安装nginx

    sudo apt-get install nginx

安装nginx就可以通过下面地址来访问了:http://localhost/

安装php

    sudo apt-get install php5-cli php5-cgi php5-fpm php5-mcrypt

php5-fpm:与nginx配合方式之一,另外个是:spawn-fcgi。

配置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;
    }
    }

其中“/var/run/php5-fpm.sock”是“/etc/php5/fpm/pool.d/www.conf”的listen,记得重启nginx

    sudo /etc/init.d/nginx restart

测试php是否支持

编辑"/usr/share/nginx/mytest/index.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

    就可以搞定,但实际上并没有有自动产生nginx的配置文件,连/etc/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)

    虽然产生了/etc/nginx目录了,但只有部分配置文件

        conf.d sites-available sites-enabled

    于是

        sudo apt-get --purge remove nginx
        sudo apt-get autoremove

        dpkg --get-selections|grep nginx

    罗列除与nginx相关的软件,

        nginx-common deinstall

    然后sdfsd

        sudo apt-get --purge remove nginx-common
        sudo apt-get install nginx

    然后OK!


反向代理或负载

    这涉及到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;
        }

    server指令用于制定后端服务器的名称和参数,服务器的名称可以是域名、IP地址、端口号或UNIX Socket。
    在虚拟机主机配置中指定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,如果配置多个,则实用简单的轮询来达到负载的效果。

本文来源:http://www.bbyears.com/caozuoxitong/60754.html