• Nginx负载均衡


    apache与nginx的区别

    nginx本身只能处理静态页的解析,如果要解析动态页面的话,需要用到反向代理的功能
    nginx有反向代理功能,能做负载均衡。apache没有
    nginx更轻量级,占用的内存很小。而apache更稳定
    nginx更适合高并发,因为nginx处理请求属于异步非阻塞的,可以多个连接(万级别)对应一个进程。而apache 则是阻塞型的,一个连接对应一个进程。
    nginx 处理 静态资源 性能高于apache,处理 动态语言 性能低于apache,因为nginx处理动态语言经过的层次太多了。

    A. 使用nginx的反向代理将请求转发到php-fpm -> B.fastcgi进程管理器(php-fpm)收到请求后选择并连接一个cgi解释器

    nginx的两种负载均衡方式

    轮询加权(也可以不加权,就是1:1负载)和
    ip_hash(根据ip分配后端服务器,解决session问题)

    // 轮询加权
    upstream lb {
        server 192.168.196.130 weight=1;
        server 192.168.196.132 weight=2;
    }
    
    // ip_hash轮询
    upstream lb {
        server 192.168.196.130;
        server 192.168.196.132;
        ip_hash;
    }
    

    服务器环境假设

    假设
    192.168.1.111(主) -> 安装有LNMP,进行负载均衡控制
    192.168.1.112(从) -> 安装有LNMP,进行应用运行
    192.168.1.113(从) -> 安装有LNMP,进行应用运行

    LNMP的安装

    每台服务器都安装LNMP
    参考:https://www.kancloud.cn/wangking/linux/280755

    负载均衡配置

    主服务器(192.168.1.111)负载均衡配置

    vim /opt/nginx/conf/vhosts/zhuifanba.conf

    upstream load_balance{
        # 设置负载均衡的机器列表(采用轮询的方式)
        server 192.168.1.112:80; #从服务器1
        server 192.168.1.113:80; #从服务器2
    }
    
    server {
        listen 80;
        server_name www.zhuifanba.com;
        location / {
            #设置反向代理
            proxy_pass  http://load_balance;
            proxy_set_header   Host             $host;
            proxy_set_header   X-Real-IP        $remote_addr;
            proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
        }
    
        location ~ .*\.(php|php5)?$
        {
            #设置反向代理
            proxy_pass  http://load_balance;
            proxy_set_header   Host             $host;
            proxy_set_header   X-Real-IP        $remote_addr;
            proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
        }
    
        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
        {
            # 设置静态文件的反向代理
            proxy_pass   http://load_balance;
            expires      30d;
        }
    
        location ~ .*\.(js|css)?$
        {
            # 设置静态文件的反向代理
            proxy_pass  http://load_balance;
            expires      1h;
        }
      
    }
    

    从服务器(192.168.1.112~113)运行环境配置

    vim /opt/nginx/conf/vhosts/zhuifanba.conf

    server {
        listen       80;
        server_name   www.zhuifanba.com;
        index index.html index.htm index.php;
        root /var/www/zhuifanba/frontend/web;
    
        location / {
            if (!-e $request_filename){
                rewrite ^/(.*) /index.php last;
            }
        }
    
        location ~ .*\.(php|php5)?$
        {
            fastcgi_pass  127.0.0.1:9000;
            fastcgi_index index.php;
            fastcgi_param  SCRIPT_FILENAME  /var/www/zhuifanba/frontend/web$fastcgi_script_name;
            include fastcgi.conf;
        }
        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
        {
            expires 30d;
        }
        location ~ .*\.(js|css)?$
        {
            expires 1h;
        }
        
        error_log /var/log/zhuifanba.error.log;
        access_log /var/log/zhuifanba.access.log;
        
    }

  • 相关阅读:
    学习进度报告2021/4/5
    学习进度报告2021/4/4
    学习进度报告2021/4/3
    学习进度报告2021/4/2
    学习进度报告2021/4/1
    学习进度报告2021/3/31
    《学会提问》读书笔记3
    学习进度报告2021/3/30
    MySQL入门——如何进行主从配置
    MySQL入门详解——事务、锁、优化
  • 原文地址:https://www.cnblogs.com/lxwphp/p/15452938.html
Copyright © 2020-2023  润新知