nginx实现负载均衡
ngin简介
Nginx 是一款*的、开源的、高性能的 HTTP 服务器和反向代理服务器;同时也是一个 IMAP、POP3、SMTP 代理服务器。
Nginx 可以作为一个 HTTP 服务器进行网站的发布处理,另外 Nginx 可以作为反向代理进行负载均衡的实现。
代理
为了保护真实对象,真实对象委托另一对象去完成某项任务,这个过程就是代理。日常生活中有很多体现代理思想的事,例如,董事长委托秘书去楼下买包烟。
正向代理
客户端向代理服务器发送一个请求给正向代理服务器,代理服务器带着请求去找原始服务器,将结果带回来给客户端。例如,vpn就是正向代理的过程,你的请求发送到了另一地区的代理服务器,然后代理服务器根据你的请求去访问指定的服务器返回结果给你。
反向代理
客户端发送请求到反向代理服务器,由反向代理服务器决定要转发的原始服务器,而客户端本身并不知道自己访问的是反向代理服务器。
总结:正向代理代理的是客户端;反向代理代理的是服务器
或者说,正向代理是客户端知道访问是哪个目标服务器,反向代理是客户端不知道访问的是哪个目标服务器。
nginx可以实现反向代理和负载均衡,这两个功能可以同时实现,负载均衡同时就已经实现了反向代理。
nginx实现负载均衡步骤
前提:三台Linux服务器,其中两台部署好了JAVA项目,在第三台配置nginx服务器实现负载均衡
关于nginx的安装:https://blog.csdn.net/weixin_44001681/article/details/105440723
linux自启动:https://blog.csdn.net/weixin_44001681/article/details/105441107
tomcat热部署:https://blog.csdn.net/weixin_44001681/article/details/105419472
进入nginx中的conf文件,打开nginx.conf文件进行配置
cd /usr/local/nginx/conf
vim nginx.conf
配置内容如下,
配置好之后,保存退出,并启动nginx
cd /usr/local/nginx/sbin
./nginx
之后就可以在浏览器中访问域名来访问其中配置好的两个部署了项目的服务器了
去电脑中C:\Windows\System32\drivers\etc\hosts文件中设置,代表访问这个域名会自动访问这个ip的服务器,也就是nginx服务器。跟localhost代表本机127.0.0.1一个道理。(其实浏览器直接输ip也行)
因为没有通过DNS域名解析服务,所以需要在本机的hosts文件中进行配置域名和IP的映射关系
接下来去浏览器输入域名访问nginx服务器,服务器就会自动转到你配置好的项目服务器。(如果打不开,看看防火墙80端口开了没)
常用的设备状态配置
upstream myServer {
server 127.0.0.1:9090 down;
server 127.0.0.1:8080 weight=2;
server 127.0.0.1:6060;
server 127.0.0.1:7070 backup;
}
down 表示单前的server暂时不参与负载
weight 默认为1.weight越大,负载的权重就越大。
max_fails :允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream 模块定义的错误
fail_timeout:max_fails 次失败后,暂停的时间。
backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。
一般就weight down backup 常用
默认weight 轮询算法,weight默认值为1 ,服务器交替访问一次后下次访问就去另一台。
参考链接:https://baijiahao.baidu.com/s?id=1652608869911988442&wfr=spider&for=pc
https://www.cnblogs.com/wly1-6/p/10418149.html
推荐阅读
-
Java+Nginx实现POP、IMAP、SMTP邮箱代理服务
-
SpringCloud Ribbon 负载均衡的实现
-
Apache Http Server2.2采用ajp协议配置tomcat7负载均衡 博客分类: 服务器中间件ApacheServerTomcatApacheHttpServer apachetomcat
-
Apache Http Server2.2采用ajp协议配置tomcat7负载均衡 博客分类: 服务器中间件ApacheServerTomcatApacheHttpServer apachetomcat
-
keepalived-nginx-apache-mysql实现高可用、负载均衡的网站(上) NginxKeepalived
-
Keepalived时主备负载均衡器都有VIP的问题:VRRP协议问题 博客分类: keepalived keepalivedvipvrrp
-
nginx keepalived lvs 博客分类: nginx nginxkeepalivedlvs负载均衡
-
Nginx+tomcat负载均衡session问题解决 博客分类: nginx
-
nginx负载均衡设置 博客分类: nginx
-
SpringCloud与Consul集成实现负载均衡功能