如何使 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
- 如何使 nginx 支撑更高并发
- 如何使Linux系统支持更高的并发
- 高并发情况下 如何支撑大量的请求
- Jmeter支撑高并发测试
- Nginx如何优化突破十万高并发
- ConcurrentHashMap 如何在不损失线程安全的同时提供更高的并发性-转自IBM-developerWorks
- 更高的并发:改进PostgreSQL锁机制
- 关于Nginx的一些优化:如何突破十万并发
- Nginx是如何实现轻量级和高并发
- Nginx 多进程模型是如何实现高并发的?
- 基础设施如何支撑海量互联网应用创新
- 如何利用数据来支撑设计?
- Tomcat支撑高并发的秘密:深入NIO Connector原理
- 如何使自己跳得更高?------学习跳蚤效应的五点体会
- 如何使MyEclipse6.0甚至更高版本的代码自动补全
- CIO如何获得更高的席位?
- Nginx限制ip链接数,Nginx如何限制并发数,同1个IP,nginx怎么限制流量/限制带宽?
- nginx高并发配置
- mysql 体系架构图
- TypeError: Cannot read property 'query' of undefined
- [BZOJ]2466: [中山市选2009]树 树形DP
- fido
- linux系统下MySQL数据库备份与恢复
- 如何使 nginx 支撑更高并发
- 从代码层读懂 Java HashMap 的实现原理
- 此计算机上缺少vc2005_sp1_with_atl_fix_redist
- 恭祝 51编程俱乐部 的博客开通
- Cocos2d添加虚拟按钮Button,引用cocostudiolib库方法
- 一些前端书写规范建议
- Linux基础——vmstat 查看负载
- ns2相关学习——TCL脚本编写(2)
- DRUID连接池的实用 配置详解