如何使 nginx 支撑更高并发

来源:互联网 发布:免费股票数据接口api 编辑:程序博客网 时间:2024/06/06 03:26
/** * * * * 如何使 nginx 支撑更高的并发? * 原理: *     服务器方面可以从两个方面阐述: *          1、socket 链接方面:因为每次请求都是一次连接,而 nginx 服务器配置方面默认没有配置那么高的连接数,所以先要加大 nginx 的连接数。【要求内存要大】。 *          2、文件打开方面:nginx 能否一次性被打开那么多的文件【默认一个进程能打开 1024 个文件】。 * * 配置方式: * 一、socket 链接方面改进【每次请求都是一次链接】 *    1、nginx 方面 *         子进程允许打开最大链接(worker_connections) *         nginx》vim conf/nginx.conf *                worker_connections 10240;          #调大连接数 *                wq * * *    2、系统层面改进 *         ①最大连接数(打开尽量多的链接):somaxconn。 *             nginx》more /proc/sys/net/core/somaxconn    #查看允许打开最大连接数 *             nginx》echo 50000 > /proc/sys/net/core/somaxconn *         ②加快 tcp 链接的回收(tcp 链接断开时有个延迟,消除这个延迟,消除占用):tcp_tw_recycle。 *             nginx》cat /proc/sys/net/ipv4/tcp_tw_recycle        #0 为不开启回收 *             nginx》echo 1 > /proc/sys/net/ipv4/tcp_tw_recycle   #1 为开启快速回收 *             nginx》vim conf/nginx.conf *                    keepalive_timeout 0;   #此配置选项改为 0 (是链接后立马断开,其他数为链接后保持多少秒。):是因为在 http1.1 协议中响应头有个 Connection 的 value 如果是 keep-alive 说明连接后保持连接【好处是减少链接,链接一次拿多个东西,如css文件,弊端是占用 tcp 链接】;如果是 close 说明是链接后断开【好处是加快回收 tcp 链接,链接、断开;坏处是增加了链接】。可折中的设置为 2-3。 *         ③空的 tcp 链接是否允许回收利用(就是失败的 tcp 链接):reuse。 *             nginx》echo 1 > /proc/sys/net/ipv4/tcp_tw_reuse     #1 开启回收利用 *         ④洪水攻击(默认 nginx 在超多并发访问时会当做是洪水攻击,所以会做相应抵御)。 *             nginx》more /proc/sys/net/ipv4/tcp_syncookies       #1 为开启抵御 *             nginx》echo 0 > /proc/sys/net/ipv4/tcp_syncookies   #0 为关闭抵御 * * * 二、文件打开方面【一个进程有打开文件的限制】 *    1、nginx 方面 *         子进程允许打开的文件数:worker_limit_nofiles *             vim /usr/local/nginx/conf/nginx.conf *             worker_rlimit_nofile 10000;          #手动写入配置文件【写在 worker_processes 下面】。 *    2、系统层面 *         ulimit -n   返回系统可一次允许打开文件最大个数。 *         ulimit -n 30000  #修改系统可一次打开最大文件个数 * * * * * *        /usr/local/nginx/sbin/nginx -s reload           #修改完配置,重启 *        /usr/local/httpd/bin/db -c 2000 -n 100000 http://www.dengwenbo.xin/in.php  #并发测试 *        192.168.1.202/status                            #浏览器访问,查看测试状态 *            参数: Active connectons:??   #当前活动数量 * */

0 0
原创粉丝点击