简述本文主要介绍Nginx负载均衡之upstream、server、location参数配置 。
NginxNginx是lgor Sysoev为俄罗斯访问量第二的rambler.ru站点设计开发的 。从2004年发布至今,凭借开源的力量,已经接近成熟与完善 。
Nginx功能丰富,可作为HTTP服务器,也可作为反向代理服务器,邮件服务器 。支持FastCGI、SSL、Virtual Host、URL Rewrite、Gzip等功能 。并且支持很多第三方的模块扩展 。
常用功能反向代理,代理对象为服务端做代理,使客户端不需要感知服务端的存在,只需要访问代理服务器便可获得想要的结果 。实现限流、负载均衡、动静分离等 。

文章插图
负载均衡(Load Balance),是分布式系统中一个非常重要的概念 。当访问的服务具有多个实例节点时,需要根据某种“均衡”的策略决定请求发往哪个节点,这个过程就是所谓的负载均衡 。多在高并发情况下需要使用 。其原理就是将数据流量分摊到多个服务器执行,减轻每台服务器的压力,多台服务器(集群)共同完成工作任务,从而提高了数据的吞吐量 。Nginx是一个轻量级、高性能、稳定性高、并发性好的HTTP和反向代理服务器 。

文章插图
web缓存
Nginx可以对不同的文件做不同的缓存处理,配置灵活,并且支持FastCGI_Cache,主要用于对FastCGI的动态程序进行缓存 。配合着第三方的ngx_cache_purge,对制定的URL缓存内容可以的进行增删管理
配置示例

文章插图
图 1 配置示例
参数说明

文章插图
图 2 参数说明
upstreamupstream模块主要负责负载均衡的配置,通过默认的轮询调度方式来分发请求到后端服务器 。
upstream backend {server backend1.example.com weight=5;server backend2.example.com fail_timeout=5s slow_start=30s;server backend3.example.com resolve;server backend4.example.com service=http resolve;server backup1.example.com backup;server backup2.example.com backup;}
文章插图
serverserver模块配置是http模块中的一个子模块,用来定义一个虚拟访问主机 。
server {listen 80;server_name localhost nginx_ip;root /nginx/www;index index.php index.html index.html;charset utf-8;access_log logs/access.log;error_log logs/error.log;}
文章插图
locationlocation模块配置在路由访问信息配置中关联到反向代理、负载均衡等等各项功能 。
语法规则: location [=|~|~*|^~] /uri/ { … }

文章插图
多个location优先级:首先匹配 =,其次匹配^~, 其次是按文件中顺序的正则匹配,最后是交给 / 通用匹配 。当有匹配成功时候,停止匹配,按当前匹配规则处理请求 。
location / {root /nginx/www; index index.php index.html index.htm;}location ^~ /test {proxy_pass http://backend;proxy_redirect off;proxy_set_header Host $host;}location /:表示匹配访问根目录 。root:用于指定访问根目录时,访问虚拟主机的web目录 。
index:在不指定访问具体资源时,默认展示的资源文件列表 。
ok,以上就是Nginx负载均衡之upstream、server、location参数配置,看完记得转发、点赞和收藏 。如果有错误,欢迎批评指正,感谢 。
(云渺书斋)
【Nginx负载均衡之upstream、server、location参数配置】
推荐阅读
- LVS+Keepalived+Nginx高可用分布式集群
- 看了这篇,我确定你已经彻底搞懂Nginx了
- 怎么提升Linux性能,看完这篇文章,彻底掌握"平均负载"
- 2万字长文带你细细盘点五种负载均衡策略
- 记一次CPU使用率低负载高的排查过程
- 用Nginx实现接口慢查询并可示化展示TOP 20
- 你不知道的Nginx服务器的一些知识
- Nginx健康检查模块,生产还能这样配置
- nginx中加入opentracing能力
- nginx 这一篇就够了
