首页 > 代码库 > nginx服务器详解

nginx服务器详解

轻量级的web服务器

1、nginx服务器功能

nginx服务器可以扮演:web服务器、应用服务器、代理服务器、反向代理服务器、后台服务器、CDN缓存服务器

nginx的基本模块:

  • 内核模块CoreModule:用于控制nginx服务器的基本功能,该模块的指令置于配置文件的根部(开始部分),内核模块还提供了大量的内置变量:$url、$host...。
  • 事件驱动模块EventsModule:用于控制nginx如何处理连接,该模块的指令参数会对应用程序的性能产生重要影响,置于events{}中。
  • http内核模块HttpCoreModule:提供http相关功能,该模块不能被禁用,指令置于http{}中。

2、nginx的模块与进程管理

     nginx采用模块化设计,但和apache不同的是,模块一旦被编译进来就不可以被卸载,如果有特别需要只能重新编译nginx。

     了解nginx默认安装和不安装的模块:./configure  --help

     使用第三方模块:在对nginx进行configure的时候,参数--add-module用来添加第三方模块。

     nginx分为single和master两种进程模型,由于single的认错能力较差,实际生产环境中使用的是master进程模型(master进程和worker进程)

master进程可以处理的信号:

     

worker进程可以处理的信号:

      

 

3、针对nginx对linux服务器的优化

1)关闭系统中不需要的服务

     chkconfig --list   列出linux中的所有服务

     service bluetooth stop   

     chkconfig --level 235 bluetooth off   --关闭bluetooth服务

2)优化写磁盘操作:nginx每访问一个文件之后,linux系统会对它的access,即访问时间进行修改。

  配置文件:/etc/fstab

      /dev/sdb1  /dataext3  defaults,noatime,nodiratime 0 0  

3)优化资源限制

     ulimit  -n   --单个用户对文件描述符的使用限制,即能打开的文件个数

     ulimit  -u   --单个用户最多拥有的进程数

     修改配置文件/etc/security/limits.conf

4)优化内核TCP选项

修改配置文件/etc/sysctl.conf

 

4、优化nginx服务器

1)关闭访问日志

2)使用epoll

3)配置优化

worker_connections 65535

keepalive_timeout 60

client_header_buffer_size 8k

worker_rlimit_nofile 65535

 

5、nginx与缓存

nginx实现缓存功能的三种方法:

1)nginx自带的proxy_store、proxy_cache、memcached模块

2)第三方模块Ncache

3)Varnish服务器

 

缓存技术---memcached

    

 

 

 

 

 

 


从nginx接受客户端请求处理的角度来说,它与Apache有何不同?

     nginx采用的是事件驱动结构,使用异步套接字来接收请求,是一种非阻塞结构,不使用单独的线程处理,目的是为了减少内存和cpu的开销,而apache采用的同步套接字、线程和进程,每一个请求都是一个单独的进程或线程。