Nginx-1.9.9 实现 负载均衡、反向代理

linux安装nginx-1.9.9到指定目录 阅读详情




《 Nginx-1.9.9 实现 负载均衡、反向代理 》







了解 Nginx 虚拟主机

《Centos-7.2下使用 Nginx-1.9.9 实现虚拟主机的几种解决方案》




安装 Nginx 
《 Centos-7.2 下 Nginx-1.9.9 安装图文详解 》




一、关于 Nginx 的反向代理;
通常的代理服务器,只用于代理内部网络对 Internet 的连接请求,客户机必须指定代理服务器,并将本来要直接发送到Web服务器上的http请求发送到代理服务器中由代理服务器向Internet
上的web服务器发起请求,最终达到客户机上网的目的。


而反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,
此时代理服务器对外就表现为一个反向代理服务器。
如下图:




Nginx 作反向代理服务器只做请求的转发,后台有多个http服务器提供服务,nginx的功能就是把请求转发给后面的服务器,决定把请求转发给谁。
二、Nginx + Tomcat 实现反向代理
在通常情况下,实现反向代理,至少需要两个 tomcat 服务器和一个 nginx 反向代理服务器,
nginx 服务器:192.168.69.101
tomcat1 服务器:192.168.69.102
tomcat2 服务器:192.168.69.103
如下图:




由于硬件设施的限制,那么在这儿一个虚拟机上创建三个tomcat实例,模拟多个服务器,和实际生产环境大致相同。
通过访问不同的域名访问运行在不同端口的tomcat,配置内容如下图:
www.8080.com访问运行 8080 端口的 tomcat 服务器;
www.8081.com访问运行 8081 端口的 tomcat 服务器;
www.8082.com访问运行 8082 端口的 tomcat 服务器;


这儿给个工具比较使用的工具,SwitchHosts ! 是一个管理、切换多个 hosts 方案的工具。它是一个免费开源软件。

下载地址:http://download.youkuaiyun.com/download/hello_world_qwp/10268575

谢谢支持!!!

下载完成后,以管理员身份安装和运行,如果安装 360 杀毒软件的可能标识为病毒,手动授权即可正常使用!


在本地 Host 文件中进行配置,如下图:




配置 Nginx 的反向代理,输入命令 “ vi vi conf/nginx.conf ” ,键入内容如下:


    upstream tomcat_001 {
		server 192.168.78.141:8080;
    }
	
    upstream tomcat_002 {
		server 192.168.78.141:8081;
    }
	
	upstream tomcat_003 {
		server 192.168.78.141:8082;
    }
	
    server {
        listen       80;
        server_name  www.8080.com;
        location / {
            proxy_pass   http://tomcat_001;
            index  index.html index.htm;
        }  
    }
	
    server {
        listen       80;
        server_name  www.8081.com;
        location / {
            proxy_pass   http://tomcat_002;
            index  index.html index.htm;
        }
    }
	
    server {
        listen       80;
        server_name  www.8082.com;
        location / {
            proxy_pass   http://tomcat_003;
            index  index.html index.htm;
        }
    }





如下图:




测试反向代理,请求访问 www.8080.com 域名通过 nginx 代理访问 tomcat_001,如下图:




测试反向代理,请求访问 www.8081.com 域名通过 nginx 代理访问 tomcat_002,如下图:




测试反向代理,请求访问 www.8082.com 域名通过 nginx 代理访问 tomcat_003,如下图:




三、关于 Nginx 负载均衡


负载均衡是建立在现有网络结构之上的,它提供了一种廉价的有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。

负载均衡,英文名称为Load Balance,其意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。


当一台服务器的单位时间内的访问量越大时,服务器压力就越大,大到超过自身承受能力时,服务器就会崩溃。为了避免服务器崩溃,让用户有更好的体验,我们通过负载均衡的方式来分担服务器压力。
我们可以建立很多很多服务器,组成一个服务器负载均衡系统,当用户访问网站时,先访问一个中间服务器,在让这个中间服务器在服务器负载均衡系统中选择一个压力较小的服务器,然后将该访问请求引入该服务器。如此以来,用户的每次访问,都会保证服务器负载均衡系统中的每个服务器压力趋于平衡,分担了服务器压力,避免了服务器崩溃的情况。
负载均衡是用反向代理的原理实现的。


结论:

正向代理 -> 代理的是用户。
反向代理 -> 代理的是服务器。


四、Nginx + Tomcat 实现负载均衡


Nginx 实现反向代理的结构图,如下:




根据上图所示的需求在 nginx.conf 文件中配置负载均衡,内容如下:
    

   upstream tomcat_pool {
                server 192.168.78.141:8080;
                server 192.168.78.141:8081;
                server 192.168.78.141:8082;
    }


    server {
        listen       80;
        server_name  www.baity.com;
        location / {
            proxy_pass   http://tomcat_pool;
            index  index.html index.htm;
        }
    }




配置详解:
1、down
表示当前的 server 暂时不参与负载,并且该服务器不提供任何服务;
2、weight
默认为 1,权重值越大,在整个负载均衡系统中提供请求处理的几率就越大;
3、max_fails
允许请求失败的次数,默认为 1,当超过最大失败次数时,将返回 proxy_next_upstream 模块定义的错误解决方案;
4、fail_timeout
当 max_fails 超过最大失败次数后,设置 Tomcat服务器 暂停的时间; 
5、backup
在一个 Tomcat 负载均衡系统中,当所有的 Tomcat 服务器处于处理用户请求的状态中时,此时进来的请求将交由定义为 backup 的 Tomcat 服务器提供请求处理的服务。

如下图:






在本地 Host 文件中进行配置,如下图:




测试 Nginx + Tomcat 的负载均衡,注意观察端口变化情况,如下图:




在这儿就只测试轮询(默认不跟参数)了,在实际的生产环境中,可以根据使用情况进行参数的配置和调整。


关于负载均衡的各种实用方式


1、轮询(默认)
每个请求顺序分配到不同的 Tomcat 服务器,如果其中某台服务器宕机,则该服务器不再参与轮询。


upstream tomcat_pool {
	server 192.168.78.141:8080;
	server 192.168.78.141:8081;
	server 192.168.78.141:8082;
}




2、weight (权重)
配置权重后,将决定 Tomcat 服务器提供服的几率,权重的值越大,提供处理请求的几率就越大,主要解决了硬件设施导致服务器性能的不均匀,这个就可以根据实际情况进行均衡分配。


upstream tomcat_pool {
	server 192.168.78.141:8080 weight=3;
	server 192.168.78.141:8081 weight=2;
	server 192.168.78.141:8082 weight=1;
}




3、fair
按负载均衡系统中请求处理响应的时间来进行分配,响应时间短的优先分配。


upstream tomcat_pool {
	server 192.168.78.141:8080;
	server 192.168.78.141:8081;
	server 192.168.78.141:8082;
	fair;
}




4、ip_hash
配置了 ip_hash 指令后,当用户请求服务器时,nginx 会将该请求通过哈希算法,自动按访问 ip 的 hash 结果分配到该服务器,这样就固定某个 Tomcat 服务器为某个用户提供固定的请求处理。
主要解决了当用户服务器后,再次访问时被分配到其它服务器处理请求时,再次需要登陆的问题, ip_hash 主要作用是根据 ip 来维持 session 的 (当然,这个可以使用 Tomcat 自带的 session 共享实现,但是当负载均衡系统较大时,session 共享就不太适合了  或者 也可以使用 memcached 来实现 session 共享,这样就无需担心 session 掉线了,这个需要架构师对系统的一个权衡了 )。


upstream tomcat_pool {
	ip_hash;
	server 192.168.78.141:8080;
	server 192.168.78.141:8081;
	server 192.168.78.141:8082;
}






5、url_hash
配置 url_hash 指令后,当用户请求服务器时,nginx 会将该请求通过哈希算法,自动按访问 url 的 hash 结果固定到该服务器,url_hash 的优点是能够提高负载均衡系统的服务效率,比如提高 squid(高性能的代理缓存服务器) 的效率,
但是缺点是当负载均衡系统中某台服务器宕机的时候,url_hash 不会自动跳转的其他缓存服务器,而是返回给用户一个503错误,这是最尴尬的地方,不知道现在有没有改进这点,持续关注中。。。


upstream tomcat_pool {
	server 192.168.78.141:8080;
	server 192.168.78.141:8081;
	server 192.168.78.141:8082;
	hash $request_uri;
	hash_method crc32;
}














好了,关于 Nginx-1.9.9 实现 负载均衡、反向代理 就写到这儿了,如果还有什么疑问或遇到什么问题,可以给我留言。
歇后语:“共同学习,共同进步”,也希望大家多多关注CSND的IT社区。
Redis在Linux的安装 阅读详情

相关推荐

Tez_0.9.1安装配置

安装Tez前需先安装布署Hive,可参考文章:Hive_1.2.1安装配置 1、下载安装包 方式一、官网下载: http://tez.apache.org 方式二、优快云资源快速下载 :快速下载Tez_0.9.1安装包 2、上传压缩包 将压缩包上传到/usr/local/software/目录下并解压到/usr/local/ tar -zxvf apache-tez-0.9.1-bin.ta...

剁椒鱼不要头的博客 1174

利用快马平台快速生成9·1免费版安装向导原型,三步完成界面设计

先设计后编码:明确每个步骤的功能和交互方式后再开始编码,能大大提高开发效率。模块化开发:将安装向导的每个步骤作为独立模块开发,便于后期维护和功能扩展。注重用户体验:即使是原型也要考虑用户体验,清晰的导航和及时的反馈能提升原型演示效果。利用工具优势:像快马平台这样的工具能显著缩短开发周期,把精力集中在核心功能而非基础建设上。这个9·1免费版安装向导原型从构思到完成只用了不到半天时间,这在以前是难以想象的。InsCode(快马)平台。

SunstoneLion34的博客 76万+

高性能Nginx服务器-基于Nginx1.9实现TCP反向代理与负载均衡

Http动态负载均衡 什么是动态负载均衡 传统的负载均衡,如果Upstream参数发生变化,每次都需要重新加载nginx.conf文件, 因此扩展性不是很高,所以我们可以采用动态负载均衡,实现Upstream可配置化、动态化,无需人工重新加载nginx.conf。 这类似分布式的配置中心 动态负载均衡实现方案 Consul+Consul-template 每次发现配置更改需要raload nginx,重启Nginx。 Consul+OpenResty 实现无需raload动态负载均衡.

魔法革1996 219

零基础新手如何用快马AI一键生成9·1免费版安装教程网站

作为一个完全不懂编程的新手,最近想给朋友分享9·1免费版软件的安装方法。本来打算手动建个网站,但光是看到"HTML"、"CSS"这些词就头大。后来发现了,用自然语言描述需求就能生成完整网站代码,简直太适合我这种小白了。

ObsidianRaven13的博客 29万+

similarity network fusion for aggregating data types on a genomic scale

基因组规模上的聚合数据类型的相似性网络融合 摘要:         近期的技术已经使收集不同类型的全基因组数据十分划算,结合这些数据去创建一个给定的疾病或生物过程的一个全面视图的计算方法是有必要的。相似网络融合(SNF:similarity network fusion)通过创建每一个可利用的数据类型的样本(如,患者)的网络可以解决这个问题。例如,创建一个给定一群患者疾病的全面视图,SNF计算

augustar学习笔记 7868

Windows7 64位系统PL2303驱动无法安装问题解决

问题描述:电脑安装的是Win7 64位的旗舰版,USB to RS232这种线很简单,对于笔记本如果要用串口,就不能少了它了。USB to RS232转换芯片种类繁多,常见的有ch340,0108,PL2303,FT232等,这里面FT232的应该价格是相对比较贵的,因为FTDI的芯片本身比较贵。由于买了一根PL2303芯片的USB to RS232转换线,于是插上后发现驱动无法安装,又是在设备管

suxiang198的博客 5808

06蚂蚁-高性能Nginx服务器——5.基于Nginx1.9实现TCP反向代理与负载均衡

Nginx 基于1.9实现四层负载均衡 网络模型 Socket入门 什么是Socket? Socket就是为网络服务提供的一种机制。 通讯的两端都有Sokcet 网络通讯其实就是Sokcet间的通讯 数据在两个Sokcet间通过IO传输。 TCP与UDP在概念上的区别: udp: a、是面向无连接, 将数据及源的封装成数据包中,不需要建立连接 b、每个数据报的大小在限制64k内 c、因无连接,...

qq_28461661的博客 381

波束管理 Beam Management

Beam Management in 5G NR   波束管理,是5G NR中基于信道质量来动态选择每个UE和gNB之间以什么方向和频率的波束beam来进行通信。   背景   5G NR(New Radio)支持非常高的数据速率和更低的延迟。5G NR支持FR1和FR2频段,FR1为亚6 GHz(450至6000 MHz);FR2为毫米波段(24.25 GHz至52.6 GHz)。   由于毫米波频带使用非常高的频率,因此会导致传播损耗和其他损耗。为了补偿损失,在这种频率下定向通信是必不可少的。

最忆是江南的博客 5825

高性能Nginx服务器(5)----基于Nginx1.9实现TCP反向代理与负载均衡(四层负载均衡)

我们之前的nginx负载均衡都是七层负载均衡,基于HTTP(应用层),这节课我们讲的是基于TCP(四层负载均衡),简单说我们这节课讲的负载均衡都是基于Socket实现的(Socket就是基于TCP实现的)。 ...

红烧咸鱼的博客 553

工业质检新利器:手把手教你用AD-DINOv3实现零样本缺陷检测(附MVTec AD实战)

本文详细介绍了AD-DINOv3框架在工业质检中的应用,通过零样本异常检测技术解决传统方法的标注成本高和泛化能力弱问题。文章包含技术原理解析、MVTec AD数据集实战部署、模型训练流程及工业部署优化技巧,帮助读者快速掌握这一创新技术。

seed的博客 763

闲鱼客户端三重动态签名机制解析:x-sign、x-mini-wua与x-umt

在移动客户端安全通信中,设备级动态签名已成为主流App防范自动化攻击的核心手段。其原理是将设备指纹、运行时行为与可信硬件标识深度融合,生成不可复用、不可跨端、不可静态伪造的请求凭证。这类机制超越传统Token或Session鉴权,具备强上下文绑定性与实时熵值校验能力,广泛应用于电商、社交及开放平台等高风险接口场景。技术价值体现在有效识别模拟器、无头浏览器与集群化爬虫,同时保障多端一致性与合规数据对接。本文聚焦闲鱼客户端实际落地的x-sign(带设备上下文的混合签名)、x-mini-wua(小程序行为水印)与

weixin_35732273的博客 494

nginx反向代理无效_以及_负载均衡无效

文章目录一. 前言二. 问题背景三. 解决方法3.1 解决问题一的方法3.2 解决问题二的方法 一. 前言 最近在公司实习感受到了自己是真的菜,项目用到了nginx,所以抽时间学点nginx玩玩。遇到了一两个非常坑的地方,来此做下笔记。希望对大家有帮助吧。冲! 参考:bilibili的尚硅谷播放量最高的nginx视频,大家可自行去观看 二. 问题背景 操作系统:CentOS 7或者其他Linux内核系统 Nginx:1.18.0 stable版 Tomcat:Tomcat 9版本,配了2台 浏览器:谷歌浏览

Android_la的博客 1741

​基于stm32的智能空气加湿器设计(含源代码和Proteus仿真)

课程设计分享

LoongSTUDIO的博客 2924

《Nginx + 双Tomcat实战:域名解析、静态服务与反向代理、负载均衡全指南》

掌握 Nginx静态资源托管(端口10010)。 实现 Nginx反向代理,通过域名 www.123.com 分发请求到不同Tomcat实例。 理解 路径匹配规则(/tomcat1/ vs /tomcat2/)。 灵活路由:通过 Nginx 的路径匹配,实现同一域名下多后端服务的无缝切换。 资源隔离:Tomcat 多实例独立运行,避免端口冲突,便于版本管理和灰度发布。 高效代理:Nginx 作为反向代理,提升请求处理效率,并隐藏后端服务器细节。

hnlucky的博客 1204

【论文精读】Latent Diffusion

Latent Diffusion

weixin_44934783的博客 4474

泛微OA表单设计实战:如何快速实现自定义多选浏览框(附完整配置步骤)

本文详细介绍了在泛微OA中快速实现自定义多选浏览框的完整配置步骤。针对招聘提报、活动审批等需要从海量数据中规范选择多个条目的业务场景,文章从理解需求、构建数据源、设计查询页面到创建浏览框控件,提供了清晰的实战指南,帮助开发者高效解决复杂数据选择难题,提升表单操作体验。

yog99的博客 1047

Nginx 反向代理(三):四层代理和负载均衡

Nginx从1.9.0版本开始支持TCP模式的负载均衡,并在1.9.13版本中增加了对UDP协议的支持,主要用于DNS解析。通过ngx_stream_proxy_module和ngx_stream_upstream_module模块,Nginx可以实现TCP负载均衡、后端服务器分组、权重分配、状态监测和调度算法等功能。配置时需在编译安装时添加--with-stream选项。文章详细介绍了如何配置Nginx作为TCP反向代理,包括MySQL和Redis服务的代理设置,以及如何实现TCP协议的负载均衡。通过修改

nihao2q的博客 852

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

简易nginx TCP反向代理设置

nginx从1.9.0开始支持TCP反向代理,之前只支持HTTP。这是我的系统示意图: 为何需要? 为什么需要反向代理?主要是: 负载均衡 方便管控 比如我现在要更新后端服务器,如果不用负载均衡的话,在更新过程中,用户会出现无法连接服务器的情况,而一旦用了负载均衡,用户此时的连接请求将会分配到别的没在更新的后端服务器去,尽可能地确保了服务的可用性;再考虑这么种情况,...

anw53724的博客 263

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

使用nginx的反向代理转发ssh服务

#### 前言 nginx从1.9.0开始,新增加了一个stream模块,用来实现四层协议的转发、代理或者负载均衡等 #### 准备工作 使用yum源安装nginx(详见:https://blog.csdn.net/weixin_42715225/article/details/105603410),默认自带stream模块 #### 配置nginx反向代理转发ssh服务 `...

weixin_42715225的博客 2749

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

在Linux中搭建Pentaho Server集群,并使用MySQL作为存储库、Nginx做反向代理与负载均衡

在Linux中搭建Pentaho Server集群,并使用MySQL作为存储库、Nginx做反向代理与负载均衡 一、准备工作 1、本文环境 名称 CentOS JDK MySQL Pentaho Server Nginx 版本 7.9 1.8 5.7 9.1 1.20.1 2、集群规划 主机名 IP 应用 pentaho-server1 192.168.198.31 Pentaho Server pentaho-server2 192.168.198.32 Penta

This is Yunis's blog! 2692

nginx反向代理tcp

nginx除了代理http协议外,从1.9.0版本开始新增了tcp协议的代理。 代理tcp协议准备工作 代理tcp需要使用stream模块(ngx_stream_core_module),默认configure不包含该模块,需要在configure的时候加上–with-stream 代理tcp的基本配置 官网示例 worker_processes auto; error_log /var/log/nginx/error.log info; events { worker_connection.

jjt_zaj的博客 5627

nginx 反向代理配置多站点

nginx 文件结构 端口服务 linx 系统centos7.4 nginx1.9.9 nginx文件夹下的nginx.conf文件为nginx入口配置文件,该文件下每个server指令都可以设置一个端口, 当我们有多个网站时,可以创建多个server指令,通过server指令的proxy_pass http://127.0.0.1:3000来实现请求的分发,同样这种请求的分发...

aa87981的博客 731

nginx反向代理Oracle数据库

nginx反向代理Oracle数据库 需要nginx版本1.9以上 用到stream模块,默认是http的,不会加载stream,需要自己手动添加。 events { worker_connections 1024; } stream { upstream oracle{ server IP:port weight=1 max_fails=2 fail_time...

宾克斯的美酒丶 2611

配置一个nginx反向代理&负载均衡服务器

一、基本信息 系统(L):CentOS 6.9 #下载地址:http://mirrors.sohu.com 反代&负载均衡(N):NGINX 1.14.0 #下载地址:http://nginx.org/en/download.html OPENSSL:openssl-1.1.0h #下载地址:https://www.openssl.org/source/ 指定服务安装的通用位置 mkd...

weixin_34363171的博客 106
上一篇: Centos-7.2下使用 Nginx-1.9.9实现虚拟主机的几种解决方案
下一篇: Linux 下并行运行多个 Tomcat 的配置详解
TechBro华仔
TechBro华仔 优质创作者: Java技术领域 优质创作者: Java技术领域 领域专家: 后端开发技术领域 领域专家: 后端开发技术领域
博客等级 码龄11年 5万+粉丝 430原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TechBro华仔

日拱一卒无有尽,功不唐捐终入海

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值