5. Nginx 负载均衡设置案例(附有详细截图说明++)
@
目录
1. Nginx 负载均衡 设置实例
需求说明/图解
windows 欣赏器输入: http://www.rainbowseacrm.com/search/look.html
负载均衡设置-思路分析/图解
负载均衡设置规则:
- 负载均衡就是将负载分摊到差别的服务单元,既保证服务的可用性,又保证响应足够快。
- Linux 下有:Nginx、LVS、Haproxy 等等服务可以提供负载均衡服务,Nginx 提供了如下几种分配方式(计谋):
- 轮询(默认) :每个哀求按时间顺序逐一分配到差别的后端服务器,如果后端服务器 down 掉,能自动剔 除
- weight(根据权重的大小,比例进行负载均衡)
weight 代表权,重默以为 1,权重越高被分配的客户端越多。
指定轮询几率,weight 和访问比率成正比,用于后端服务器性能不均的情况。 比方- upstream rsservers{
- server 192.168.12.134:8080 weight=1;
- server 192.168.12.134:8081 weight=2;
- }
复制代码
- ip_hash : 每个哀求按访问 IP 的 hash 效果分配,这样每个访客固定访问一个后端服务器,可以解决 session 的题目。比方:
- upstream rsservers{
- ip_hash;
- server 192.168.12.134:8081;
- server 192.168.12.134:8080;
- }
复制代码
- fair(第三方):按后端服务器的响应时间来分配哀求,响应时间短的优先分配
- upstream rsservers{
- server 192.168.12.134:8080;
- server 192.168.12.134:8081;
- fair;
- }
复制代码
- 修改 C:\Windows\System32\drivers\etc\hosts 设置虚拟主机名,设置相关域名的映射
- # Copyright (c) 1993-2009 Microsoft Corp.
- #
- # This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
- #
- # This file contains the mappings of IP addresses to host names. Each
- # entry should be kept on an individual line. The IP address should
- # be placed in the first column followed by the corresponding host name.
- # The IP address and the host name should be separated by at least one
- # space.
- #
- # Additionally, comments (such as these) may be inserted on individual
- # lines or following the machine name denoted by a '#' symbol.
- #
- # For example:
- #
- # 102.54.94.97 rhino.acme.com # source server
- # 38.25.63.10 x.acme.com # x client host
- # localhost name resolution is handled within DNS itself.
- # 127.0.0.1 localhost
- # ::1 localhost
-
- 127.0.0.1 account.wondershare.com
- # 配置 eureka 主机 和 ip 的映射
- 127.0.0.1 eureka9001.com
- 127.0.0.1 eureka9002.com
- 192.168.76.157 www.rainbowsea.com
- 192.168.76.159 www.rainbowseamall.com
- 192.168.76.160 www.rainbowseacrm.com
复制代码
- 修改 安装目录conf\nginx.conf 设置,反向署理路径映射
这里我的 nginx.conf 路径是在 /usr/local/nginx/conf 路径下。
- upstream rsservers {
- 36 server 192.168.76.160:8080;
- 37 server 192.168.76.160:8081;
- 38
- 39 }
- 40
- 41 server {
- 42 listen 80;
- 43 server_name 192.168.76.160;
- 44 #server_name localhost;
- 45 #charset koi8-r;
- 46
- 47 #access_log logs/host.access.log main;
- 48
- 49 location / {
- 50 root html;
- 51 proxy_pass http://rsservers;
- 52 index index.html index.htm;
- 53 }
- 54
复制代码 查看 nginx.conf 是否存在设置错误:- [root@localhost nginx]# ./sbin/nginx -t
- [root@localhost nginx]# /usr/local/nginx/sbin/nginx -t
复制代码
重启 Nginx ,加载我们修改后的设置:- [root@localhost nginx]# ./sbin/nginx -s reload
复制代码- [root@localhost nginx]# ps -aux | grep nginx
复制代码
- 在 Linux 的 Tomcat8080 创建 webapps\search\look.html
这里我先进入到 Tomcat 的 webapps 目录下,创建 look.html 文件,进行一个访问映射。
- <h1>tomcat 8080 search.... </h1>
复制代码
- 在 Linux 下重新安装一份 Tomcat, 并将端口修改成 8081
- [root@localhost opt]# cp -r ./tomcat/ ./tomcat8081
复制代码
修改 tomcat 的 conf\server.xml , 留意要修改如下位置,否则该 Tomcat 是不能正常工作。
细节说明:差别版本的 tomcat 修改的端口还不一样, 小伙伴们灵活处理即可。
- 在 Linux 的 Tomcat8081 创建 webapps\search\look.html
- <h1>tomcat 8081 search.... </h1>
复制代码
- linux 防火墙打开 80 端口, 保证外网可以访问
- [root@localhost product]# firewall-cmd --add-port=80/tcp --permanent # 防火墙开放 10000 端口
复制代码- [root@localhost product]# firewall-cmd --reload # 重启防火墙
复制代码- [root@localhost product]# firewall-cmd --list-all # 查看防火墙信息
复制代码
- [root@localhost bin]# ./startup.sh
复制代码- [root@localhost bin]# netstat -an | more
复制代码
打开 Linux 当中的欣赏器: 访问
查看启动的端口, 确保有 8080 和 8081 端口在监听(提示: 如果 tomcat 没有监听 对应端口, 说明启动失败了, 可以尝试先实行 shutdown.sh 再实行 startup.sh 解决)
- 测试是否可以在 Linux 下可以正常访问到两个页面
- [root@localhost nginx]# ./sbin/nginx
复制代码- [root@localhost nginx]# ps -aux | grep nginx
复制代码
http://www.rainbowseacrm.com/search/look.html
3. 留意事项和避免的坑
- nginx.conf 的 upstream 不能带下划线, 否则会失败, 但是语法检测不到
带下划线,报错信息,如下:
- 如果你的欣赏器是无痕上网, 负载均衡可能失效, 因为 Nginx 无法收罗到相关信息, 就遇到这个情况, 改用其它欣赏器即可(比如 chrome)
- 如果某 tomcat 没有监听对应端口说明启动失败了,可以尝试先实行,shutdown.sh再实行 startup.sh 解决
4. 文档: Nginx 的 upstream 设置技巧
基本介绍:
Nginx 是一个反向署理软件,大部分的网站都接纳 Nginx 作为网站/平台的 服务器软件。Nginx 除了可以直接作为 web 服务器使用外,更多的情况是 通过反向署理将哀求转发给上游服务器。
设置上游服务器可以使用 upstream 进行设置,通过 upstream 可以实现服 务的负载均衡规则,可以提高服务器的高可用性。
地址:https://zhuanlan.zhihu.com/p/409693332
- 如果停掉 1 个 Tomcat, 会怎样?
- 如果停掉 1 个 Tomcat, 然后又规复,会怎样?
- 怎样给差别的服务,分配权重 weight
5. 末了:
“在这个末了的篇章中,我要表达我对每一位读者的感激之情。你们的关注和回复是我创作的动力源泉,我从你们身上吸取了无尽的灵感与勇气。我会将你们的鼓励留在心底,继续在其他的领域奋斗。感谢你们,我们总会在某个时刻再次相遇。”
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |