• debian+nginx配置初探--php环境、反向代理和负载均衡


    配置nginx的PHP环境

    1. 安装nginx
      sudo apt-get install nginx
      安装nginx就可以通过下面地址来访问了:http://localhost/
    2. 安装php
      sudo apt-get install php5-cli php5-cgi php5-fpm php5-mcrypt
      php5-fpm:与nginx配合方式之一,另外个是:spawn-fcgi。
    3. 配置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
    4. 测试php是否支持
      编辑"/usr/share/nginx/mytest/index.php"
      <?php
      phpinfo();
      ?>
    5. 如果启动nginx遇到失败等情况,可以查看nginx的错误日志,在

      /var/log/nginx/error.log

    完全卸载nginx

    在配置nginx做实验时配置错了,导致访问不了虚拟主机。一狠心把nginx的配置文件目录(/etc/nginx)都删除了,而且我没有备份这些配置文件,因此想重装nginx。

    1. 本来以为直接使用如下apt-get指令
      sudo apt-get --purge remove nginx
      sudo apt-get install nginx
      就可以搞定,但实际上并没有有自动产生nginx的配置文件,连/etc/nginx目录都没产生。
    2. 于是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

    3. 于是
      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!

    反向代理或负载

    1. 这涉及到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。
    2. 在虚拟机主机配置中指定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;
              }
      }
    3. 然后就可以通过http://localhost:99/来访问10.9.31.89:5001的服务了。这里只配置了一个后端server,如果配置多个,则实用简单的轮询来达到负载的效果。
  • 相关阅读:
    VMware workstation中安装Ubuntu18.04server
    python一行命令安装chromedriver
    vim配置&相关问题
    博客园美化
    期望DP——HDU4035Maze
    [学习笔记]虚树
    线段树——51nod1593&CF515E 公园晨跑
    [STL] multiset
    [学习笔记] 线性基
    泛化物品优化树型DP——[HAOI2010]软件安装
  • 原文地址:https://www.cnblogs.com/zhaiqianfeng/p/4621672.html
Copyright © 2020-2023  润新知