• Linux中nginx+nodejs 多台服务器负载均衡


    1、准备工作:1、关闭 Selinux 2、负载均衡的种类:

    2、开启防火墙对应端口

    1)一种是通过硬件来进行解决,常见的硬件有 NetScaler、F5、Radware 和 Array 等商用的 负载均衡器,但是它们是比较昂贵的
    2)一种是通过软件来进行解决的,常见的软件有 LVS、Nginx、apache 等,它们是基于 Linux 系统并且开源的负载均衡策略.

    Nginx 的特点是占有内存少,并发能力强,事实上 nginx 的并发能力确实在同类型的网页服 务器中表现最好,中国大陆使用 nginx 网站用户有:新浪、网易、 腾讯等。

    nginx 的 upstream 目前支持 3 种方式的分配:

    1)、轮询(默认) 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器 down 掉,能自动剔除。

    2)、weight 权重 ——you can you up

    指定轮询几率,weight 和访问比率成正比,用于后端服务器性能不均的情况。

    3)、ip_hash ip哈希算法

    每个请求按访问 ip 的 hash 结果分配,这样每个访客固定访问一个后端服务器, 可以解决 session 的问题。

    配置负载均衡

    找到 /etc/nginx/conf.d 然后在里面新建对应网站的配置文件

    upstream bakeaaa {
        
        ip_hash;
        server 127.0.0.1:3001 weight=1; 
        server 127.0.0.1:3002 weight=1;
        server 192.168.1.129:3001 weight=3;
    }
    
    
    
    server {
        listen       80;
        server_name  www.aaa.com;
    
        #charset koi8-r;
        #access_log  /var/log/nginx/host.access.log  main;
    
        location / {
        #设置主机头和客户端真实地址,以便服务器获取客户端真实 IP
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        #禁用缓存
        proxy_buffering off;
            
        proxy_pass http://bakeaaa;
        }
        location /socket.io {        
            # 此处改为 socket.io 后端的 ip 和端口即可
            proxy_pass http://127.0.0.1:3001;
    
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
            proxy_http_version 1.1;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Host $host;
        }
    
        #error_page  404              /404.html;
    
        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/share/nginx/html;
        }
     
    }

    重启

    重启 
    nginx systemctl restart nginx 
    nginx -t 看配置是否正确 
    systemctl stop nginx 
    systemctl start nginx

    防火墙配置

    添加:
    firewall-cmd --zone=public --add-port=80/tcp --permanent 
    重新载入:
    firewall-cmd --reload
  • 相关阅读:
    PipedInputStream
    jmeter学习网址
    inside the cpp object model
    AVA中,关键字final癿作用
    静态类
    C#核心概念装箱和拆箱(什么是装箱和拆箱)
    wp7.1 本地数据库 MSDN几篇参考资料
    启动器和选择器学习(6)Extras <wp7 7.1版本中的使用方法>
    启动器和选择器学习(5)启动器
    UI控件分类
  • 原文地址:https://www.cnblogs.com/loaderman/p/11655079.html
Copyright © 2020-2023  润新知