欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

nginx的负载均衡

发布时间:2025/7/25 编程问答 45 豆豆
生活随笔 收集整理的这篇文章主要介绍了 nginx的负载均衡 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

根据osi分四层负载均衡和七层负载均衡

四层:主要是在传输层,传输层能支持到tcp协议的控制,所以对客户端的请求只需要进行tcp/ip的包转发,就可以实现负载均衡

七层:主要是在应用层,可以实现http协议的改写,头信息的改写,安全应用规则的控制以及转发等的规则,nginx就是七层负载均衡的SLB

 

 

 

nginx负载均衡实现的原理:使用的是proxy_pass

把所有端的请求,代理转发到对应后端的服务器上,转发到一组小服务池,upstream server

配置语法:

必须是在http以内,server层以外

例子:

在/opt/app下面有三个文件夹 code1 code2 code3

在每个文件夹中都放了不同展示效果的页面

比如其中一个页面index.html

<html> <head><meta charset="utf-8"><title>server1</title> </head> <body style="background-color:yellow;"><h1>server 1</h1> </body> </html>

在 /etc/nginx/conf.d/下建了三个conf   server1.conf  server2.conf   server3.conf

比如其中一个conf中server1.conf

server{listen 8001;server_name localhost;access_log /var/log/nginx/log/server1.access.log main;location /{root /opt/app/code1;index index.html index.htm;}

server2.conf

server{listen 8002;server_name localhost;access_log /var/log/nginx/log/server2.access.log main;location /{root /opt/app/code2;index index.html index.htm;}

开始配置负载均衡

新建一个虚拟server 叫:upsream_test.conf

upstream imooc{server 116.62.103.228:8001; server 116.62.103.228:8002; server 116.62.103.228:8003; } server{listen 80;server_name localhost jeson.peak;access_log /var/log/nginx/test_proxy.access.log main;location /{proxy_pass http://imooc;include proxy_params;} }

nginx -s reload -c /etc/nginx/nginx.conf

访问 jeson.peak就可以了 ,默认是轮询的状态

假设有一个服务挂掉

iptables -I INPUT -p tcp --dport 8002 -j DROP

用这个规则关掉8002之后

就不会显示对应的8002端口对应的页面了

 

清理规则 iptables -F

配置负载均衡调度中的状态

nginx的轮询策略与加权轮询

ip_hash是把相同请求转到同一台服务器

url_hash 是基于url负载均衡的方式

 

转载于:https://www.cnblogs.com/gaosf/p/10232131.html

总结

以上是生活随笔为你收集整理的nginx的负载均衡的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。