Nginx :一个高性能的Http和反向代理服务器,也是IMAP/POP3/STMP 代理服务器。
官方测试Nginx可以稳定支撑5w并发链接。
常见参数:
nginx.conf
#nginx 包含四个模块配置
#1、main(全局范围) :设置指令影响其他所有模块。
#2、server(server范围):制定server和port 相关参数。
#3、upstream(负载均衡服务器):负载均衡的配置。
#4、location(URL匹配特定位置的设置):配置网页路径。
具体参数:
#user : 设置nginx的用户和用户组,默认nobody。
user www www;
#worker_processes:nginx要开启的进程数,(单个进程平均消耗10m-12m内存),建议和cpu的数量一致。
worker_processes 8;
#error_log: 错误日志输出级别 debug 、info 、notice 、warning 、 error、crit。
error_log /home/nginx/log/error.log
# pid :指定进程pid的存储文件位置。
pid /var/run/nginx.pid
EVENTS:工作模型与连接数上限
event
{
#事件模型
#是Linux 2.6以上版本内核中的高性能网络I/O模型,linux建议epoll,如果跑在FreeBSD上面,
#就用kqueue模型。
#补充说明:
#与apache相类,nginx针对不同的操作系统,有不同的事件模型
#A)标准事件模型
#Select、poll属于标准事件模型,如果当前系统不存在更有效的方法,nginx会选择select或poll
#B)高效事件模型
#Kqueue:使用于FreeBSD 4.1+, OpenBSD 2.9+, NetBSD 2.0 和 MacOS X.使用双处理器的MacOS X系统使用kqueue可能会造成内核崩溃。
#Epoll:使用于Linux内核2.6版本及以后的系统。
#Eventport:使用于Solaris 10。 为了防止出现内核崩溃的问题, 有必要安装安全补丁。
use epoll;
#单个进程最大连接数(最大连接数=连接数*进程数)
#根据硬件调整,和前面工作进程配合起来用,尽量大,但是别把cpu跑到100%就行。每个进程允许的最多连接数,理论上每台nginx服务器的最大连接数为。
worker_connections 65535;
#keepalive超时时间。
keepalive_timeout 60;
#客户端请求头部的缓冲区大小。这个可以根据你的系统分页大小来设置,一般一个请求头的大小不会超过1k,
#不过由于一般系统分页都要大于1k,所以这里设置为分页大小。
#但也有client_header_buffer_size超过4k的情况,但是client_header_buffer_size该值必须设置为
#“系统分页大小”的整倍数。
client_header_buffer_size 4k;
#这个将为打开文件指定缓存,默认是没有启用的,max指定缓存数量,建议和打开文件数一致,
#inactive是指经过多长时间文件没被请求后删除缓存。
open_file_cache max=65535 inactive=60s;
#这个是指多长时间检查一次缓存的有效信息。
#语法:open_file_cache_valid time 默认值:open_file_cache_valid 60
#使用字段:http, server, location 这个指令指定了何时需要检查open_file_cache中缓存项目的有效信息.
open_file_cache_valid 80s;
#open_file_cache指令中的inactive参数时间内文件的最少使用次数,如果超过这个数字,文件描述符一直是在缓存中打开的,如上例,如果有一个文件在inacti