兔宝宝游戏网 游戏攻略 手游攻略 nginx最大并发连接数设置,Nginx高可用

nginx最大并发连接数设置,Nginx高可用

时间:2025-03-13 05:15:29 作者:兔宝宝游戏网 浏览:364

nginx最大并发连接数,最近不少朋友在找Nginx高可用的相关介绍,兔宝宝游戏网给大家详细的介绍一下,希望对大家有帮助。

1、nginx最大并发连接数设置:

一、Nginx概念
Nginx是一个高性能的http和反向代理服务器,特点是占用内存少,并发能力强,事实上Nginx的并发能力确实在同类型的网页服务器中表现较好
Nginx专为性能优化而开发,性能就是其最重要的考量,实现上非常注重效率,能经受高负载的考验,有报告表明能支持高达50000个并发连接数

二、Nginx配置文件
第一部分全局块
从配置文件开始到events之间的内容,主要会设置一些影响Nginx服务器整体运行的配置指令,比如worker_processes 1; worker_processes值越大,可以支持的并发处理量越多
第二部分events块
events块涉及的指令主要影响Nginx服务器与用户的网络连接,比如worker_connections 1024; 支持的最大连接数
第三部分http全局块
http全局配置的指令包括文件引入、mime-type定义,日志自定义,连接超时时间,单连接请求数上限,server块等

三、反向代理
1、正向代理
在客户端(浏览器)配置代理服务器,通过代理服务器进行互联网访问

2、反向代理
我们只需要将请求发送到代理服务器,有反向代理服务器去选择目标服务器获取数据后,再返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器地址,隐藏了真实服务器IP地址

配置方式
方式一

方式二指定location规则代理

四、负载均衡
增加服务器的数量,然后将请求分发到各个服务器上,将原先请求集中到单个服务器上的情况改为将请求分发到多个服务器上,将负载分发到不同的服务器,也就是我们所说的负载均衡

1、配置两台服务器负载

2、Nginx分配服务器策略
轮询(默认)
每个请求按照时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除
weight
weight代表权重默认为1,权重越高被分配的客户端越多
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况

ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题

五、动静分离
Nginx动静就是动态请求和静态请求分开,减轻动态服务器的压力

方式一
Nginx配置location规则处理静态请求,可以设置expires静态资源缓存时间

autoindex 列出文件目录
方式二
配置静态服务器和动态服务器分开请求

六、高可用
一台代理服务可能出现down机导致服务不可用,无法保证高可用
高可用架构配置多台服务器比如两台服务器一台正常使用一台用来备份,通过keepalived 心跳机制进行监控当主的服务器down掉立即启用备份服务器保证服务的高可用

安装keepalived 配置keepalived.conf 添加检测脚本 绑定网卡配置虚拟ip

七、Nginx原理

1、工作模式master和worker

2、一个master和多个workers的机制好处?
①可以使用nginx -s reload 热部署,利于nginx热部署操作
②每个worker是独立的进程,如果有其中一个worker出现问题,其他worker独立的继续进行争抢,实现请求过程,不会造成服务中断
需要设置多少个worker
nginx同redis类似都采用了io多路复用机制,每个worker都是一个独立的进程,但每个进程里只有一个主线程,通过异步非阻塞的方式来处理请求,即使是成千上万个请求也不再话下。每个worker的线程可以把一个cpu的性能发挥到极致
所以worker数和服务器的cpu数相等是最为适宜的。少了浪费cup,多了会造成cpu频繁切换上下文带来消耗

3、连接数worker_connection
①发送请求,占用了worker的几个连接数?
2个或者4个
②nginx有一个master,有四个worker,每个worker支持最大的连接数1024,支持最大的并发数是多少?
普通的静态访问最大并发数是:worker_connection * worker_processes / 2
如果是http做反向代理最大并发数是worker_connection * worker_processes / 4

2、nginx核心参数:

-user USERNAME [GROUP]
解释:指定运行nginx的worker子进程的属主和属组,其中属组可以不指定
示例:user nginx nginx;

-pid DIR
解释:指定运行nginx的master主进程的pid文件存放路径
示例:opt/nginx/logs/nginx.pid

-worker_rlimit_nofile number
解释:指定worker子进程可以打开的最大文件句柄数
示例:worker_rlimit_nofile 20480;

-worker_rlimit_core size
解释:指定worker子进程异常终止后的core文件,用于记录分析问题, 注意nginx用户要对目录有写权限,不然无法记录。
示例:worker_rlimit_core 50M; working_directory /opt/nginx/tem;

-worker_processes number | auto
解释:指定nginx启动的worker子进程数量
示例:worker_processes 4; worker_process auto;

-worker_cpu_affinity cpumask1 cpumask2...
解释:将每个worker子进程与我们的cpu物理核心绑定
示例:
worker_cpu_affinity 0001 0010 0100 1000; 4个物理核心,4个worker子进程
worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000; 8物理核心,8
子进程
worker_cpu_affinity 01 10 01 10; 2物理核心,4子进程
备注:将每个worker子进程与特定的cpu物理核心绑定,优势在于:避免同一个worker子进程在不同的cpu核心上切换,导致缓存失效,降低性能;但是其并不能真正的避免进程切换

-worker_priority number
解释:指定worker子进程的nice值,以调整运行nginx的优先级,通常设定为负值,以优先调用nginx
示例:worker_priority -10;
备注:Linux默认进程的优先级是120,值越小越优先;nice设定范围为-20到+19

-work_shutdown_timeout time
解释:指定worker子进程优雅退出的超时时间
示例:worker_shutdown_timeout 5s;
备注:防止恶意请求,比如建立tcp连接后没有发请求或者没有回应,会在5s后关闭连接。避免占用系统资源。

-timer_resolution interval
解释:worker子进程内部使用的计时器精度,调用时间间隔越大,系统调用越少,有利于性能提升;反之,系统调用越多,性能下降
示例:worker_resolution 100ms;

-daemon on|off
解释:设定nginx的运行方式。默认为on,表示后台运行。off表示前台运行,会输出日志信息。前台用于调试,后台用于生产

-lock_file file
解释:负载均衡互斥锁文件存放路径

-use [ select | poll | kqueue | epoll | /dev/poll | eventpot ]
nginx使用何种事件驱动模型。默认配置无,建议不配置,让nginx自己选择。

-worker_connections number
worker子进程能够处理的最大并发连接数。默认1024,建议65535。Linux可以打开的最大文件句柄数是65535,设置65535可以保证即使只有一个子进程也可以充分利用系统资源。

-accept_mutex [ on | off ]
是否打开负载均衡互斥锁。默认关闭。当用户向nginx发起请求时,主进程会向所有子进程询问,空闲的子进程将处理进程。当互斥锁打开时,由互斥锁轮流分配任务给子进程,可以提高效率。

-accept_mutex_delay time
互斥锁延迟时间。在互斥锁打开时生效,当互斥锁分配某个请求给子进程时,如果子进程由于繁忙不能处理时,会在延迟时间结束后分配给下一个子进程。可以避免请求长时间等待。

-muti_accept [ on | off ]
默认关闭。nginx子进程在某一时刻只能同时处理一个请求。打开后可以在同一时刻处理多个请求。实际情况下对提升性能不是很明显。

-server_name name1 name2...
匹配请求服务器的域名,比如: www.nginx.com 、* .nginx.com 、 www.nginx.* 、~^www\.nginx\..*% 匹配顺序为:完全匹配>左侧匹配>右侧匹配>正则表达式匹配

-root path
文件根目录,不一定放在server段中,可以放的上下文环境是http、server、location、if。

-location [ = | ~ | ~* | ^~ ] url { ... }
解释:
=表示完全匹配,优先级最高。
示例:location = /images/ { ... } ,可以匹配 www.url.com/images , www.url.com/images/item ,不可以匹配带参数的url,例如: www.url.com/images?name=k 。需要注意的是 www.url.com/images 比 www.url.com/images/item 优先级要高。

^~匹配到即停止搜索,优先级次之。不能与不带符号的相同url同时存在。
示例:location ^~ /images/ { ... } 和 location /images/ { ... } 不能同时存在。

~正则匹配,优先级次之

~*正则匹配,不区分大小写,优先级次之

不带符号优先级最低

备注:url后面到底跟不跟/?简单来说,带/表示目录,不带/表示文件。比如/nginx/会匹配nginx目录下的index文件,/nginx会先匹配nginx目录下的index文件,如果没有nginx目录,则会把nginx当成文件。

-stub_status
监控nginx状态。
示例:location /url { stub_status; }
显示的参数解释:
Active Connections 活跃的连接数量($connections_active)
accepts 接受的客户端连接总数量
handled 处理的客户端连接总数量
requests 客户端总的请求数量
Reading 读取客户端的连接数($connections_reading)
Writing 响应数据到客户端的连接数($connections_writing)
Waiting 空闲客户端请求连接数量($connections_waiting)

-alias path
文件根目录。注意path后要以/结尾,且只能放在location段中。跟root区别是:root会将定义路径与url叠加,alias只取定义路径。比如访问的location为/admin, root为/etc/nginx, alias为/etc/nginx/, 则root的绝对路径为/etc/nginx/admin, 而alias的绝对路径为/etc/nginx。

总结:以上内容就是针对nginx最大并发连接数设置,Nginx高可用的详细介绍,大家可以参考一下。

标题:nginx最大并发连接数设置,Nginx高可用
链接:http://www.qzj2.com/article/32786.html
版权:文章转载自网络,如有侵权,请联系删除!
资讯推荐
更多
海龟汤题目和答案全套恐怖高难度,细思极恐的冷门海龟汤

海龟汤题目和答案全套恐怖高难度,细思极恐的冷门海龟汤,细思极恐海龟汤大全及答案汤面:有兄弟三人,感情非常好

2025-03-13
gta5武器秘籍大全(完整版)无限子弹,gta5的武器秘籍有哪些

gta5武器秘籍大全,完整版无限子弹,gta5的武器秘籍有哪些,gta5武器全满代码是:IFWEREARCHMAN。其他秘籍:一、武

2025-03-13
梦幻西游义绝墨魂笔3x攻略(神器义绝墨魂笔之踪攻略)

梦幻西游义绝墨魂笔3x攻略,可以这么说,这个神器是3X神器挑战里最难刷的了,对于没刷过的朋友来说更难,那么怎么刷

2025-03-13
公交车里抓着摇曳的手环诗情,清晨时见雾青草沾雨露是什么歌

公交车里抓着摇曳的手环诗情,清晨时见雾青草沾雨露是什么歌,是马良的《醒着醉》里的歌词。醒着醉作词:马良作

2025-03-13