Nginx 配置文件 nginx.conf(静态网站)

Nginx是一个高效、稳定、功能丰富的Web服务器,可以通过简单的配置实现各种需求。

本文以Nginx作为静态网站使用时的配置为例进行记录。

# 指定nginx worker进程运行用户以及用户组,默认由nobody账号运行
user	nobody nobody;
# nginx要开启的进程数:每个Nginx进程平均耗费10M~12M内存。根据经验,一般指定一个进程足够了,如果是多核CPU,建议指定和CPU的数量一样的进程数即可
worker_processes	4;
# nginx的进程ID
pid	logs/nginx.pid;
# 一个nginx进程进程打开的最多文件描述符(句柄)数目,理论值是最多打开文件数(ulimit -n,ulimit -a看全部限制)与nginx 进程数相除: 修改 /etc/security/limits.conf,设置:root soft nofile 65535 root hard nofile 65535
worker_rlimit_nofile	65535;

events {
	# 设定nginx的工作模式及连接数上限
	use epoll;
	# 每个进程允许的最多连接数, 理论上每台nginx 服务器的最大连接数为worker_processes*worker_connections
	worker_connections  65535;
}

http {
	include	mime.types;
	# 设定默认类型为二进制流,也就是当文件类型未定义时使用这种方式,例如在没有配置PHP环境时,nginx是不予解析的,此时,用浏览器访问PHP文件就会出现下载窗口
	default_type  application/octet-stream;
	# 日志输出格式
	log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
	    '$status $body_bytes_sent "$http_referer" '
	   '"$http_user_agent" "$http_x_forwarded_for"';
	
	# 客户端请求头的headerbuffer大小。对于大多数请求,1k的缓冲区大小已经足够,如果自定义了消息头或有更大的Cookie,可以增加缓冲区大小。该值必须设置为“系统分页大小”的整倍数,分页大小可以用命令getconf PAGESIZE 取得,这里设置为2k
	client_header_buffer_size 2k;
	# 客户端请求中较大的消息头的缓存最大数量和大小, 4为个数,32K为大小,最大缓存量为128K
	large_client_header_buffers 4 32k;
	# 允许客户端请求的最大的单个文件字节数,默认上传文件的大小是1m
	client_max_body_size 20m;
	# 允许头部参数名称包含下划线
	underscores_in_headers on;
	# 用于开启高效文件传输模式。将tcp_nopush和tcp_nodelay两个指令设置为on用于防止网络阻塞
	sendfile on;
	tcp_nopush on;
	tcp_nodelay on;
	# 设置客户端连接保持活动的超时时间(秒),服务器将会在这个时间后关闭连接
	keepalive_timeout 60;
	# 读取客户端请求头超时时间(秒)。如果超过这个时间(指一个请求头没有进入读取步骤),客户端还没有发送任何数据,nginx将返回“Request time out(408)”错误
	client_header_timeout 60;
	# 读取客户端请求主体超时时间(秒)。如果超过这个时间(指一个请求实体没有进入读取步骤),客户端还没有发送任何数据,nginx将返回“Request time out(408)”错误,默认值是60
	client_body_timeout 60;
	# 响应客户端的超时时间(秒)。这个超时仅限于两个连接活动之间的时间,如果超过这个时间,客户端没有任何活动,nginx将会关闭连接,timeout是指没有进入完整established状态,只完成了两次握手(TCP需要三次握手),如果超过这个时间客户端没有任何响应,nginx将关闭连接
	send_timeout 10;
	# 设置开启或者关闭gzip模块,on表示开启GZIP压缩,实时压缩输出数据流,编译时带参数:--with-http_gzip_static_module,可以使用nginx -V看编译时带了哪些模块
	gzip  on;
	# 设置允许压缩的页面最小字节数,页面字节数从header头的Content-Length中获取。默认值是0,不管页面多大都进行压缩。建议设置成大于1K的字节数,小于1K可能会越压越大
	gzip_min_length  1k;
	# 申请4个单位为16K的内存作为压缩结果流缓存,默认值是申请与原始数据大小相同的内存空间来存储gzip压缩结果
	gzip_buffers     4 16k;
	# 设置识别HTTP协议版本[1.0 | 1.1],默认是1.1,目前大部分浏览器已经支持GZIP解压,使用默认即可
	gzip_http_version  1.1;
	# 压缩比:1压缩比最小处理速度最快,9压缩比最大但处理速度最慢(传输快但比较消耗cpu)
	gzip_comp_level  2;
	# 压缩的类型:无论是否指定,text/html类型总是会被压缩的
	gzip_types  text/plain application/javascript text/css application/xml;
	# 让前端的缓存服务器缓存经过GZIP压缩的页面,例如用Squid缓存经过Nginx压缩的数据
	gzip_vary  on;
	# 设置开启服务器端SSI命令
	ssi on;
	# SSI命令执行出现错误时静默错误
	ssi_silent_errors on;
	# 指定文件类型中插入SSI命令
	ssi_types text/html,text/shtml; 

	# 静态网站
	
}

完整文章:http://www.laobingbiji.com/note/detail.html?note_id=202311171723380000000010187639

你可能感兴趣的:(编程经验,nginx,android,运维)