Nginx负载均衡[通俗易懂]

Nginx负载均衡

大家好,又见面了,我是全栈君。

apache与nginx的区别

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

Nginx负载均衡[通俗易懂]

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/111901.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • linux 实时查看日志 最新最后100行 tail「建议收藏」

    linux 实时查看日志 最新最后100行 tail「建议收藏」(1)实时查看日志文件tail-f日志文件名(2)只查看日志文件后100行tail-f-n100日志文件名(3)搜寻字符串grep‘搜寻字符串’日志文件名按ctrl+c退出————————————————版权声明:本文为CSDN博主「wanghai76」的原创文章,遵循CC4.0BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:http…

    2022年6月4日
  • 树莓派pico官方网站_树莓派pico参数

    树莓派pico官方网站_树莓派pico参数文章目录1树莓派PICO简介1.1简介1.2配置[^2]1.3引脚图1.4尺寸2安装2.1烧录固件2.2安装IDE(ThonnyIDE)2.3离线运行程序3基础3.01点亮板载LED灯3.02板载LED闪烁3.03LED流水灯3.04按键实验3.05外部中断(改进3.04按键实验)3.06定时器中断(改进3.02板载LED闪烁)3.07PWM脉冲宽度调制(实现板载LED呼吸灯)3.08I2C总线(使用SSD1306OLED屏幕)4传感器程序4.1温度传

    2022年10月14日
  • bceloss和bcewithlogitsloss_binary cross entropy

    bceloss和bcewithlogitsloss_binary cross entropyBCELosstorch.nn.BCELoss(weight=None,size_average=None,reduce=None,reduction=‘mean’)评价预测值与真值的BinaryCrossEntropyl(x,y)=L={l1,l2,…lN}T,ln=−ωn[ynlogxn+(1−yn)log(1−xn)]l(x,y)=L=\{l_1,l_2,…l_N\}^T,l_n=-\omega_n[y_nlogx_n+(1-y_n)log(1-x_

    2022年9月18日
  • python怎么表示取余_python如何实现取余操作

    python怎么表示取余_python如何实现取余操作python实现取余操作的方法:可以利用求模运算符(%)来实现。求模运算符可以将两个数相除得到其余数。我们还可以使用divmod()函数来实现取余操作,具体方法如:【divmod(10,3)】。在python中要实现取余操作可以使用求模运算符(%),该运算符可以将两个数相除得到其余数。(推荐教程:Python入门教程)如果一个数恰好能被另外一个数据整除,则余数为0,%运算后返回结果为0。可利用余数…

    2022年4月25日
  • 前端基础之CSS_1[通俗易懂]

    前端基础之CSS_1[通俗易懂]摘要CSS(层叠样式表)的三种设置方法基本选择器组合选择器属性选择器分组与嵌套伪类选择器伪元素选择器选择器的优先级一些样式的设置(字体、文本、背景、边框)display属性设置01.CSS(层叠样式表)的三种设置方法CSS又名层叠样式表,它的作用就是给H…

    2022年6月24日
  • 将ipynb转化为pdf_jupyter打开ipynb文件

    将ipynb转化为pdf_jupyter打开ipynb文件将ipynb文件转换为markdownjupyternotebook文件(扩展:ipynb)转换说明转换jupyternotebook文件(扩展:ipynb)使用jupyternotebook转为为markdown文档文件。转换说明执行命名进行转化;文件名有空格推荐:“LinerR.ipynb”方式;LinerR.ipynb种诺是有图片,会自动保存至当前LinerR_f…

    2022年8月29日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号