zoukankan      html  css  js  c++  java
  • Nginx-负载均衡实践(一、对PHP-FPM进行分摊)

    应用的服务器分为前端和后端

      前端服务器: 负责对静态文件(比如JS、CSS、图片)等的响应, 以及把PHP请求分发到后端服务器

      后端服务器: 处理前端服务器分发而来的PHP请求

    前端服务器: 192.168.1.10

    后端服务器: 192.168.1.11, 192.168.1.12

    后端服务器的配置:

      两台后端服务器分别配置 php-fpm 的监听得之和端口, 可以通过修改php-fpm.conf或对应php-fpm配置文件来修改监听地址和端口

      由于是 php-fpm, 所以配置如下

      192.168.1.11 服务器中php-fpm的配置信息

    listen=192.168.1.11:9000

      192.168.1.12 服务器中php-fpm的配置信息

    listen=192.168.1.12:9000

      修改完后重启两台服务器的 php-fpm

    前端服务器的配置:

    #其中 "blog" 表示随意起的一个 upstream 的名称, 下文要用, 此块用来设置后端服务器
    upstream blog {
        server 192.168.1.11:9000 weight=1; #192.168.1.11:9000为后端服务器192.168.1.11的php-fpm进程监听的地址和端口
        server 192.168.1.12:9000 weight=1; #192.168.1.12:9000为后端服务器192.168.1.12的php-fpm进程监听的地址和端口
    }
    
    server {
        listen       80;
        server_name  blog.yilexun.com;
        root    /dragon/webapp/blog;
        index   index.html index.php;
    
        location ~* .(ico|css|js|gif|jpe?g|png)$ {
            #error_page  404 /404.html;
            break;
        }
        if (!-e $request_filename) {
            rewrite ^(.*).(ico|css|js|gif|jpe?g|png)$ /404.html last;
            rewrite ^(.+)$ /index.php last;
            break;
        }
        location ~* .php(?|/)? {
            fastcgi_pass_request_body off;
            fastcgi_split_path_info ^(.+.php)(.*)$;
            client_body_in_file_only clean;
            client_max_body_size 8m;
            fastcgi_param REQUEST_BODY_FILE $request_body_file;
            fastcgi_param PATH_INFO $fastcgi_path_info;
            fastcgi_pass blog; #此处 "blog" 就是上面定义的 upstream 的名称
            fastcgi_index index.php;
        }
        location = /50x.html {
            root   html;
        }
    }

      配置完后重启 nginx


    分别在前端服务器和后端服务器上都要上传相同的目录文件, 我的实验结果是虽然用后端服务器解析PHP文件, 但是前后端服务器都必须有对应的PHP文件目录

      /dragon/webapp/blog/

        index.php

    <?php
        echo '前端'; //三台服务器分别为 '前端', '后端1', '后端2'

    访问 http://blog.yilexun.com/index.php, 每次刷新可以看到输出结果在'前端', '后端1', '后端2', 中不断变化, 表示配置成功

    接下来会继续实现 nginx 服务器间的负载均衡, 敬请期待。。

  • 相关阅读:
    十个能让你成为牛逼前端程序猿的特征
    一道Javascript面试题引发的血案
    程序员实现财务自由的9个阶段,你达到了哪一段?
    程序员进阶路上不能错过的史上最全技术知识图谱秘籍
    清华大学研发神技能:用意念回复微信
    机器学习原来如此有趣:用深度学习识别人脸
    【代码片段】如何使用CSS来快速定义多彩光标
    Android自定义一款带进度条的精美按键
    现在的人工智能逆天到什么地步了?
    分享几套生成iMac相关高逼格免费mockup的素材和在线工具
  • 原文地址:https://www.cnblogs.com/JohnABC/p/4724954.html
Copyright © 2011-2022 走看看