• Linux 下 Nginx 反向代理 负载均衡配置


    转载请注明出处:http://blog.csdn.net/smartbetter/article/details/52036350

    上一篇分享了 Nginx + JDK + Tomcat + MySQL 安装使用指南,感觉还是相当实用的,本篇主要介绍 Nginx 反向代理和负载均衡的配置方法。先看一下 Nginx 反向代理的过程:

    Nginx反向代理的过程

    然后看一下Nginx负载均衡的过程(会自动选择压力较小的服务器进行访问):

    Nginx负载均衡的过程

    可以看出,负载均衡是通过反向代理的原理实现的 。负载均衡的核心就是建立一个服务器集群,然后用户首先访问到第三方代理服务器(Nginx),然后由代理服务器选择一个集群中的服务器,然后将请求引入选定的服务器(Tomcat)。负载均衡实现的方式分为软件实现和硬件实现两种,硬件实现比软件实现运行效率高,但成本也非常高。使用 Nginx 实现负载均衡,能大大节约企业的成本。

    1.Nginx反向代理实现

    # vim /usr/local/nginx/conf/nginx.conf                                  //编辑配置文件
    

    访问 www.example.com 跳转到 Tomcat 的 portal 项目的配置(Url 中不会有 portal 这个项目名):

    server {
        listen 80;
        server_name www.example.com example.com;
        location / {
            proxy_pass http://localhost:8080/portal/;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    }

    如果 portal 项目中存在静态资源不能访问的情况,添加额外的配置即可:

    server {
        listen 80;
        server_name www.example.com example.com;
        location / {
            proxy_pass http://localhost:8080/portal/;
            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 /portal/ {
            proxy_pass http://localhost:8080/portal/;
        }
    }

    下面这是一个 Nginx 重定向跳转的配置,访问 www.example.com 被重定向到 http://www.example.com/portal/(Url 中包含 portal 这个项目名) :

    server {
        listen 80;
        server_name www.example.com;
        location = / {
            rewrite ^(.*)$  http://www.example.com/portal/ redirect;
        }
        location / {
            proxy_pass http://localhost:8080/;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    }

    2.Nginx负载均衡实现

    # vim /usr/local/nginx/conf/nginx.conf
    

    编辑配置文件:

    http{
        #配置负载均衡
        #主要是用于设置一组可以在proxy_pass和fastcgi_pass指令中使用额代理服务器,默认负载均衡方式为轮询
        upstream tomcat_client {
            #设置同一个cookie的两次/多次请求,请求的是同一台服务器
            ip_hash;
            #weight权重,默认1,权重越大访问概率越大,backup备用服务器,服务器全部崩溃后启动
            server 192.168.2.21:8080 weight=5;
            server 192.168.2.22:8080 weight=5;
            server 192.168.2.23:8080 weight=5 backup;
        }
        #指定服务器的名称和参数
        server {
            listen 80;
            server_name  www.example.com;
            location / {
                proxy_pass http://tomcat_client;
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            }
        }
    }

     

    保存退出配置文件,如果存在端口占用,使用 killall -9 nginx 命令 Kill 掉 Nginx 的程序。至此负载均衡配置完毕。

  • 相关阅读:
    spring boot 在idea中实现热部署
    spring boot jar的生成
    mongodb windows 开机启动
    使用阿里云RDS
    net core 使用ef生成实体类(SqlServer)
    在window下搭建即时即用的hyperledger fabric 的环境
    NET实现谷歌OCR的使用记录(CLOUD VISION API)
    kali 系列学习12-使用Wifite破解无线网络
    kali 系列学习10-渗透攻击MySQL数据库服务、PostgreSQL数据库服务、Tomcat服务和PDF文件
    kali 系列学习09-Kali-linux设置ProxyChains
  • 原文地址:https://www.cnblogs.com/jimcsharp/p/8252158.html
Copyright © 2020-2023  润新知