博客
关于我
Nginx 反向代理+负载均衡
阅读量:789 次
发布时间:2023-02-15

本文共 2337 字,大约阅读时间需要 7 分钟。

Nginx 引入与应用

一、引入背景

我们的项目在初期由于用户数量少且并发量低,仅需一个JAR包启动Tomcat即可满足需求。然而随着用户数量的增加和并发量的提升,单一服务器已无法满足高性能需求。为此,我们通过横向扩展增加了多台服务器,但这也带来了用户访问时需要经过多个代理服务器的复杂性。

为了优化用户体验,我们引入了Nginx。Nginx作为一个高性能的反向代理服务器,能够接收用户请求并根据规则转发至适当的服务器节点,同时支持负载均衡,确保每个服务器节点根据其性能分配不同权重的流量。

二、Nginx 与 Tomcat 的关系

Nginx主要与Tomcat的关系体现在以下几个方面:

  • 反向代理:当服务器数量增加时,Tomcat无法实现session共享。Nginx作为中间层代理,能够将请求转发至不同的Tomcat实例,解决session共享问题。
  • 负载均衡:通过Nginx,服务器性能较好的节点分配更多请求,性能较差的节点分配较少流量,提升整体系统性能。
  • Nginx的反向代理和负载均衡功能使得多台服务器能够高效共享资源,显著提升系统的吞吐量和用户体验。

    三、Nginx 是什么?

    (1) Nginx 是什么?

    Nginx(engine x)是一款高性能的HTTP和反向代理Web服务器,同时支持IMAP/POP3/SMTP协议。由俄罗斯开发者Igor Sergeev于2004年首次发布,1.0.4版本于2011年推出。

    (2) Nginx 特点

    • 占用内存少,处理并发能力强:Nginx在同类型Web服务器中表现优异,中国大陆知名企业如百度、京东等广泛使用。全球活跃网站中占比超过12%。
    • 配置简单,Bug少,支持7×24小时无间断运行:Nginx代码完全用C语言编写,支持高达50000个并发连接。
    • 安装简单,版本升级不影响运行:无需重启服务器即可完成配置修改或版本升级。

    四、Nginx 作用

    1、反向代理

    • 正向代理:通过VPN代理访问外部服务器,优化访问速度。
    • 反向代理:用户无感知地访问服务器资源,支持多台服务器共享资源。

    2、负载均衡

    • 内置策略:轮询、加权轮询、IP hash。
      • 轮询:简单的循环机制。
      • 加权轮询:根据服务器性能分配不同权重。
      • IP hash:通过客户端IP hash分配请求,解决session共享问题。
    • 扩展策略:支持自定义策略,灵活负载均衡。

    3、动静分离

    • 动态资源:如JSP/ASP等需要后台处理的内容。
    • 静态资源:如HTML、CSS、JS等文件。
    • 通过动静分离优化资源响应速度,提升用户体验。

    五、Nginx 安装

    1、Windows 安装

  • 下载:访问nginx.org下载稳定版本,解压后即可运行。
  • 启动:双击nginx.exe或通过命令窗口启动。
  • 配置:修改nginx.conf文件,重新加载配置无需重启服务。
  • 关闭:使用命令停止或强制终止进程。
  • 2、Linux 安装

  • 依赖安装:安装gcc、PCRE、zlib、OpenSSL等开发库。
  • 编译安装:在Nginx源码目录执行./configure,编译并安装。
  • 配置文件修改:编辑nginx.conf,重新加载配置。
  • 注意:云服务器防火墙需开放80端口,确保Nginx服务可用。

    六、Nginx 常用命令

    • 启动:./nginx
    • 停止:./nginx -s stop
    • 退出:./nginx -s quit
    • 重新加载:./nginx -s reload
    • 查看进程:ps -aux | grep nginx

    七、Nginx 实战

    1、反向代理与负载均衡

    通过Nginx配置反向代理和负载均衡,实现多台Tomcat服务器的高效共享。以下是配置示例:

    http {    upstream backend {        server 127.0.0.1:8080 weight=1;        server 127.0.0.1:8081 weight=1;    }    server {        listen 80;        server_name localhost;        location / {            proxy_pass http://backend;        }    }}

    2、Nginx 配置文件解析

    • 全局配置:用户、日志、进程等设置。
    • 事件配置:最大连接数和事件驱动模式。
    • HTTP配置:静态资源管理、缓存、连接超时等。
    • 服务器配置:虚拟主机设置。
    • 路由配置:通过location块定义请求路由。

    3、负载均衡实现

    Nginx通过proxy_pass和upstream实现负载均衡,支持轮询、加权轮询、IP hash等策略。以下是常见配置示例:

    http {    upstream backend {        server 192.168.1.100:80 weight=3;        server 192.168.1.101:80 weight=2;        server 192.168.1.102:80 weight=1;    }    server {        listen 80;        server_name localhost;        location / {            proxy_pass http://backend;        }    }}

    总结

    Nginx作为高性能反向代理服务器,通过反向代理和负载均衡优化了多台服务器的资源共享,提升了系统性能和用户体验。Nginx的简单配置、强大功能和高稳定性使其成为高并发场景的理想选择。

    转载地址:http://dlcfk.baihongyu.com/

    你可能感兴趣的文章
    MySQL:MySQL执行一条SQL查询语句的执行过程
    查看>>
    Mysql:SQL性能分析
    查看>>
    mysql:SQL按时间查询方法总结
    查看>>
    MySQL:什么样的字段适合加索引?什么样的字段不适合加索引
    查看>>
    MySQL:判断逗号分隔的字符串中是否包含某个字符串
    查看>>
    MySQL:某个ip连接mysql失败次数过多,导致ip锁定
    查看>>
    Mysql:避免重复的插入数据方法汇总
    查看>>
    m_Orchestrate learning system---二十二、html代码如何变的容易
    查看>>
    n = 3 , while n , continue
    查看>>
    n 叉树后序遍历转换为链表问题的深入探讨
    查看>>
    N-Gram的基本原理
    查看>>
    nacos config
    查看>>
    Nacos 与 Eureka、Zookeeper 和 Consul 等其他注册中心的区别
    查看>>
    Nacos2.X 配置中心源码分析:客户端如何拉取配置、服务端配置发布客户端监听机制
    查看>>
    NacosClient客户端搭建,微服务注册进nacos
    查看>>
    Nacos原理
    查看>>
    Nacos发布0.5.0版本,轻松玩转动态 DNS 服务
    查看>>
    Nacos启动异常
    查看>>
    Nacos和Zookeeper对比
    查看>>
    Nacos在双击startup.cmd启动时提示:Unable to start embedded Tomcat
    查看>>