首页 > 代码库 > 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采用的同步套接字、线程和进程,每一个请求都是一个单独的进程或线程。