/**
 *
 *
 *
 * 如何使 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:??   #当前活动数量
 *
 */

如何使 nginx 支撑更高并发的更多相关文章

  1. nginx、swoole高并发原理初探

    阅前热身 为了更加形象的说明同步异步.阻塞非阻塞,我们以小明去买奶茶为例. 同步与异步 同步与异步的重点在消息通知的方式上,也就是调用结果通知的方式. 同步:当一个同步调用发出去后,调用者要一直等待调 ...

  2. nginx如何实现高并发

    nginx如何实现高并发 简单来讲,就是异步,非阻塞,使用了epoll和大量的底层代码优化. 稍微详细一点展开的话,就是nginx的特殊进程模型和事件模型的设计. 进程模型 nginx采用一个mast ...

  3. nginx应用 突破高并发的性能优化

    摘自:http://www.cnblogs.com/kevingrace/p/6094007.html 在日常的运维工作中,经常会用到nginx服务,也时常会碰到nginx因高并发导致的性能瓶颈问题. ...

  4. nginx+lua+redis高并发应用建设

    ngx_lua将lua嵌nginx,让nginx运行lua脚本.高并发,非堵塞过程中的各种请求. url要求nginxserver,然后lua查询redis,返回json数据. 一.安装lua-ngi ...

  5. Nginx:论高并发,在座各位都是渣渣

    NGINX 在网络应用中表现超群,在于其独特的设计.许多网络或应用服务器大都是基于线程或者进程的简单框架,NGINX突出的地方就在于其成熟的事件驱动框架,它能应对现代硬件上成千上万的并发连接. NGI ...

  6. nginx + uWSGI 为 django 提供高并发

    django 的并发能力真的是令人担忧,这里就使用 nginx + uwsgi 提供高并发 nginx 的并发能力超高,单台并发能力过万(这个也不是绝对),在纯静态的 web 服务中更是突出其优越的地 ...

  7. 面试中的nginx高可用高并发!

    本文转自:91博客:原文地址:http://www.9191boke.com/439923471.html 面试题: nginx高可用?nginx 是如何实现并发的?为什么nginx不使用多线程?ng ...

  8. 面试题:Nginx 是如何实现高并发?常见的优化手段有哪些?

    面试题: Nginx 是如何实现并发的?为什么 Nginx 不使用多线程?Nginx常见的优化手段有哪些?502错误可能原因有哪些? 面试官心理分析 主要是看应聘人员的对NGINX的基本原理是否熟悉, ...

  9. Nginx高并发实现原理以及常用的优化手段

    Nginx 是如何实现高并发的? 异步,非阻塞,使用了epoll 和大量的底层代码优化. 如果一个server采用一个进程负责一个request的方式,那么进程数就是并发数.正常情况下,会有很多进程一 ...

随机推荐

  1. TCP、HTTP协议的RPC

    TCP.HTTP协议的RPC 1.1 基于TCP协议的RPC 1.1.1 RPC名词解释 RPC的全称是Remote Process Call,即远程过程调用,RPC的实现包括客户端和服务端,即服务调 ...

  2. MYSQL INT(N)以及zerofill的使用区别

    MYSQL中,int(n)括号里面的数据n无论写成多少,都是占4个字节的空间,最多能够存10位数.N不代表能够存多少位数,显示宽度M与数据所占用空间,数值的范围无关. 如果在定义字段的时候指定zero ...

  3. SQL Server: Windows Firewall with Advanced Security

    SQL Database Engine: TCP 1433 & UDP 1434 SQL Analysis Service: TCP 2383 (2382 if named instance) ...

  4. WPF学习(三) - 依赖属性

    学习WPF时,我在看一本叫做“深入浅出WPF”的书.整整20页都在讲依赖性性和附加属性,反复看了几遍居然还是不懂,真是郁闷. 上一篇中WPF绑定的例子,其实已经用到了依赖属性. // 作为被绑定的目标 ...

  5. NPOI 给导出Excel添加简单样式

    需求分析:如下图为我之前导出的Excel数据,没有一点样式,标题行不明显,各个列的数据紧凑,查看数据时得手动拉宽每列,故这次要针对以上问题对它进行优化 结果展示: 代码: /// <summar ...

  6. Android Handling back press when using fragments in Android

    In MainActivity: getSupportFragmentManager().beginTransaction().replace(R.id.gif_contents, gifPageTw ...

  7. (转载) Android 带清除功能的输入框控件ClearEditText,仿IOS的输入框

    Android 带清除功能的输入框控件ClearEditText,仿IOS的输入框 标签: Android清除功能EditText仿IOS的输入框 2013-09-04 17:33 70865人阅读  ...

  8. Maven配置文件中配置指定JDK版本

    1. 在setting.xml文件中的<profiles>标签加入如下配置: <profile> <id>jdk-1.8</id> <activa ...

  9. FCC编程题之中级算法篇(上)

    介绍 FCC: 全称为freeCodeCamp,是一个非盈利性的.面向全世界的编程练习网站.这次的算法题来源于FCC的中级算法题. FCC中级算法篇共分为(上).(中).(下)三篇.每篇各介绍7道算法 ...

  10. luogu P2137 Gty的妹子树(分块,主席树)

    询问的化我们可以建主席树.然后修改?,树套树...,最后插入?炸了. 所以我们对操作进行分块. 我们先对整棵树建一个主席树.修改,插入我们先记录下来.然后询问的时候先对主席树查询,然后暴力遍历我们记录 ...