zoukankan      html  css  js  c++  java
  • Nginx——端口负载均衡

    前言

    Nginx做的代理后面SpringBoot的项目,1N3T的架构,Tomcat的配置也进行了相应的调优。

    配置

    这里主要来简单的说下Nginx的端口负载均衡,具体的大家可以参考

    Nginx文档 | Nginx 烹调书(Nginx Cookbook 中文版) | Nginx文档PLUS

    upstream是nignx分配方式,默认是轮询

    1. 轮询: 轮询是upstream的默认分配方式,即每个请求按照时间顺序轮流分配到不同的后端服务器。
    2. weight: 按着权重的大小进行轮询。
    3. ip_hash: 每个请求按照访问ip的hash结果分配,这样每个访客会固定访问一个后端服务器,可以解决session一致问题。
    4. fair: 可以根据页面大小、加载时间长短智能的进行负载均衡,响应时间短的后端服务器优先分配请求。
    5. url_hash: 与ip_hash类似,但是按照访问url的hash结果来分配请求,使得每个url定向到同一个后端服务器,主要应用于后端服务器为缓存时的场景下。
    6. least_conn: 把请求转发给连接数较少的后端服务器
    

    轮询

    # max_fails=2 fail_timeout=30s 代表在30秒内请求某一应用失败2次,认为该应用宕机,等待30秒再次请求
    
    upstream pool {
                    server 192.168.10.1:6001  weight=10 max_fails=2 fail_timeout=30s;
                    server 192.168.10.1:51001 weight=10 max_fails=2 fail_timeout=30s;
                    server 192.168.10.1:6005  weight=10 max_fails=2 fail_timeout=30s;
                    server 192.168.10.1:6004  weight=10 max_fails=2 fail_timeout=30s;
            }
    

    ip_hash

    upstream pool {
                    ip_hash;
                    server 192.168.10.1:6001  weight=10 max_fails=2 fail_timeout=30s;
                    server 192.168.10.1:51001 weight=10 max_fails=2 fail_timeout=30s;
                    server 192.168.10.1:6005  weight=10 max_fails=2 fail_timeout=30s;
                    server 192.168.10.1:6004  weight=10 max_fails=2 fail_timeout=30s;
            }
    

    完整配置

    我这边是虚拟主机的,所以直接配置对应的虚拟主机的配置就好了,完整配置如下

    # 负载的地址池
    upstream pool {
                    ip_hash;
                    server 192.168.10.1:6001  weight=10 max_fails=2 fail_timeout=30s;
                    server 192.168.10.1:51001 weight=10 max_fails=2 fail_timeout=30s;
                    server 192.168.10.1:6005  weight=10 max_fails=2 fail_timeout=30s;
                    server 192.168.10.1:6004  weight=10 max_fails=2 fail_timeout=30s;
     }
    
    server
        {
            listen 80;
            listen 443 ssl;
    
            server_name app.xxxx.net;
            index index.html index.htm index.php default.html default.htm default.php;
            underscores_in_headers on;
            root /usr/local/nginx/conf/html;
            ssl_certificate   /cert/app.xxxx.net.pem;
            ssl_certificate_key  /cert/app.xxxx.net.key;
            ssl_session_timeout 5m;
            ssl_ciphers xxxxxxxxxxxxxxxx;
            ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
            ssl_prefer_server_ciphers on;
    
            location / {
                   proxy_set_header  Host $host:80;
                   proxy_set_header  X-Real-IP $remote_addr;
                   proxy_set_header x-forwarded-for $remote_addr;
                   #地址池名称pool
                   proxy_pass http://pool;
            }
    
    
            location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$ {
                  #地址池名称pool
                  proxy_pass http://pool;
                  expires      30d;
             }
    
            location ~ .*.(js|css)?$ {
                  #地址池名称pool
                  proxy_pass http://pool;
                  expires      12h;
            }
    
            access_log  /home/wwwlogs/app.xxxx.net.log;
        }
    
    

    pool是自己命名的一个变量,你可以命名为别的值

    Nginx端口负载均衡就是这么的简单,但是不要忘记reload一下哦~

  • 相关阅读:
    xls与csv文件的区别
    青音,经典爱情语录
    win7用户账户自动登录方法汇总
    How to using Procedure found Lead Blocker
    FTS(3) BSD 库函数手册 遍历文件夹(二)
    FTS(3) BSD 库函数手册 遍历文件夹(一)
    DisplayMetrics类 获取手机显示屏的基本信息 包括尺寸、密度、字体缩放等信息
    About App Distribution 关于应用发布
    FTS(3) 遍历文件夹实例
    OpenCV 2.1.0 with Visual Studio 2008
  • 原文地址:https://www.cnblogs.com/wangyang0210/p/11946690.html
Copyright © 2011-2022 走看看