nginx负载均衡配置
1.nginx
nginx一款轻量级web服务器,反向代理服务器及电子邮件代理服务器,其有功能多,占用资源少,并发处理能力高的优点。他有以下用途:
- 反向代理
- 负载均衡
- http服务器(动静分离)
- 正向代理
2.nginx常用命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | 版本查看: nginx - v / - V(含编译版本) 快速关闭nginx :nginx - s stop 平稳关闭nginx : nginx - s quit nginx启动后进程 id 位置: logs / nginx.pid nginx 配置文件位置|(默认启动文件位置):conf / nginx.conf 自定义指定启动位置( - c参数): nginx - c xx / conf / xxx.conf 验证配置文件语法是否正确( - t - c):nginx - t - c xx / conf / xxx.conf 重新加载配置文件(文件修改变动后):nginx - s reload |
3、conf配置文件主要参数
1 2 3 4 5 6 7 8 | # 主要通过http块中参数upstream、server块进行配置 upstream,负载均衡配置,后面的名称与proxy_pass后参数对应。(名称可以随意写) 括号里面配置分发的服务器地址~ # server块中location块配置反向代理和监听端口等 proxy_pass:后端代理服务器的地址(域名或ip地址和端口等), proxy_set_header:请求头设置(传给服务端)。 |
4、实现负载均衡例子
将请求分发到多台机器,共同完成任务,一般结合反向代理使用,通过反向代理跳转到负载均衡~
实现方式(负载均衡策略)有:轮询(默认),权重,ip_hash,fair第三方等等。
先准备2台机器,负载均衡相关配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | upstream web_server { server 139.159 . 247.191 : 8090 ; server 116.62 . 203.159 : 8090 ; } server { listen 81 ; server_name localhost; client_max_body_size 1024M ; #charset koi8-r; access_log logs / host.access.log; location / { proxy_pass http: / / web_server; proxy_set_header Host $host:$server_port; } |
1) RR轮询,按请求时间顺序逐一轮询分配到对应服务器,若某台服务器宕机,则自动剔除~
轮询配置如上面所示,浏览器端访问效果如下:
2)权重 ,指定应用服务器访问权重比例,后端服务器性能不均时指定访问比例(通过weight控制)
1 2 3 4 | upstream web_server { server 139.159 . 247.191 : 8090 weight = 5 ; server 116.62 . 203.159 : 8090 weight = 2 ; } |
3)ip_hash(依据ip分配,nginx自带策略):根据客户端过来的ip进行hash处理,同一ip的分发给同一台服务器,可以解决session不能跨服务器的问题。
1 2 3 4 5 | upstream web_server { ip_hash; server 139.159 . 247.191 : 8090 ; server 116.62 . 203.159 : 8090 ; } |
4) fair(第三方), 按后端服务器响应时间分配,响应时间短优先分配
1 2 3 4 5 | upstream web_server { fair; server 139.159 . 247.191 : 8090 ; server 116.62 . 203.159 : 8090 ; } |
5、 nginx应用场景
1)动静分离场景:将动态资源和静态资源分别部署在不同的应用服务器,通过负载均衡加反向代理处理动态资源,通过路由匹配规则处理静态资源实现动静分离。加快解析的速度,降低单个服务器的压力。
2)同一网站多个app配置:针对各个模块配置反向代理+负载均衡+路由配置。路由定位到对应的模块访问地址,地址通过反向代理实现负载均衡指向不同的应用服务器实现访问。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· 易语言 —— 开山篇
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 【全网最全教程】使用最强DeepSeekR1+联网的火山引擎,没有生成长度限制,DeepSeek本体