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(含编译版本)
 
快速关闭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 --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配置:针对各个模块配置反向代理+负载均衡+路由配置。路由定位到对应的模块访问地址,地址通过反向代理实现负载均衡指向不同的应用服务器实现访问。

 

posted @   鱼的记忆·  阅读(136)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· 易语言 —— 开山篇
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 【全网最全教程】使用最强DeepSeekR1+联网的火山引擎,没有生成长度限制,DeepSeek本体
点击右上角即可分享
微信分享提示