Day: 2015年11月8日

深入 Nginx:我们是如何为性能和规模做设计的

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

NGINX 内部信息图从进程框架的顶层开始,向下逐步揭示NGINX如何处理单个进程中的多个连接,并进一步探讨其工作机制。

场景设置 — NGINX进程模型

    

Nginx 配置之性能篇

在介绍完我博客(imququ.com)的 Nginx 配置中与安全有关的一些配置后,这篇文章继续介绍与性能有关的一些配置。WEB 性能优化是一个系统工程,涵盖很多方面,做好其中某个环节并不意味性能就能变好,但可以肯定地说,如果某个环节做得很糟糕,那么结果一定会变差。

首先说明下,本文提到的一些 Nginx 配置,需要较高版本 Linux 内核才支持。在实际生产环境中,升级服务器内核并不是一件容易的事,但为了获得最好的性能,有些升级还是必须的。很多公司服务器运维和项目开发并不在一个团队,一方追求稳定不出事故,另一方希望提升性能,本来就是矛盾的。好在我们折腾自己 VPS 时,可以无视这些限制。

TCP 优化

        

inittab脚本启动解析

  1. Linux 开机脚本启动顺序:
  2. 第一步:启动内核
  3. 第二步:执行init (配置文件/etc/inittab)
  4. 第三步:启动相应的脚本,执行inittab脚本,并且执行里面的脚本/etc/init.d rc.sysinit rc.d rc.local。。。
  5. 第四步:启动login登录界面 login
  6. 第五步:在用户登录的时候执行sh脚本的顺序:每次登录的时候都会完全执行的 /etc/profile /etc/bashrc /root/.bashrc /root/.bash_profile
  7. inittab脚本:
  8. init的进程号为1,是所有进程的父进程,内核初始化完毕之后,init程序开始运行。其他软件也同时开始运行。init程序通过/etc/inittab文件进行配置。
  9. /etc/inittab文件每一行包括四个字段:label:runlevel:action:process。详细解释如下。