Nginx常用配置中文注释

#全局配置,主要设置nginx的启动用户/组,启动的工作进程数量,工作模式,Nginx的PID路径,日志路径等
#启动Nginx工作进程的用户和组。
user nginx nginx; 
#启动工作进程数数量
worker_processes [number|auto]; 
#将Nginx工作进程绑定到指定的CPU核心,这就极大减少了nginx的工作进程在不同的cpu核心上的来回跳转,减少了CPU对进程的资源分配与回收以及内存管理等,因此可以有效的提升nginx服务器的性能。
worker_cpu_affinity 00000001 00000010 00000100 00001000; #验证:ps axo pid,cmd,psr | grep nginx
#错误日志记录配置,语法:error_log file [debug | info | notice | warn | error | crit | alert | emerg]
error_log /apps/nginx/logs/error.log error;
#pid文件保存路径 
pid /apps/nginx/logs/nginx.pid; 
#工作进程优先级,-20~19 
worker_priority 0; #验证进程优先级:watch -n1 'ps -axo pid,cmd,nice | grep nginx 
#与Nginx连接服务器数量,包含客户端,代理服务器等,实际的并发连接数不能超过系统级别的最大打开文件数
worker_rlimit_nofile 65536; 
#前台运行Nginx服务用于测试、docker等环境。
daemon off;  
#是否开启Nginx的master-woker工作模式。
master_process off|on;
#隐藏Nginx server版本
server_tokens off; 
#导入其他路径的配置文件 
include /apps/nginx/conf.d/*.conf 
#events块,主要影响nginx服务器与用户的网络连接,比如是否允许同时接受多个网络连接,使用哪种事件驱动模型处理请求,每个工作进程可以同时支持的最大连接数,是否开启对多工作进程下的网络连接进行序列化等。
events { 
	#设置单个nginx工作进程可以接受的最大并发,作为web服务器的时候最大并发数为worker_connections * worker_processes,作为反向代理的时候为 (worker_connections * worker_processes)/2 
	worker_connections 65536; 
	#使用epoll事件驱动,只能在events模块中设置。
	use epoll;  
	#防止惊群。优化同一时刻只有一个请求而避免多个睡眠进程被唤醒的设置,on为防止被同时唤醒,默认为off,全部唤醒的过程也成为"惊群",因此nginx刚安装完以后要进行适当的优化。 
	accept_mutex on; 
	#使Nginx服务器的每个工作进程可以同时接受多个新的网络连接,此指令默认为关闭,即默认为一个工作进程只能一次接受一个新的网络连接
	multi_accept on; 
}

#http块是Nginx服务器配置中的重要部分,缓存、代理和日志格式定义等绝大多数功能和第三方模块 都可以在这设置,http块可以包含多个server块,而一个server块中又可以包含多个location块,server 块可以配置文件引入、MIME-Type定义、日志自定义、是否启用sendfile、连接超时时间和单个链接的请求上限等。
http { 
	#导入支持的文件类型
	include mime.types; 	
	#设置默认的类型,会提示下载不匹配的类型文件
	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"'; 
	#access_log logs/access.log main; 
#自定义优化参数 
	#指定是否使用sendfile系统调用来传输文件,sendfile系统调用在两个文件描述符之间直接传递数据(完全在内核中操作),从而避免了数据在内核缓冲区和用户缓冲区之间的拷贝,操作效率很高,被称之为零拷贝,硬盘 >> kernel buffer (快速拷贝到kernelsocket buffer) >>协议栈。
	sendfile on;  #作为web服务器的时候打开sendfile加快文件传输
	#在开启了sendfile的情况下,合并请求后统一发送给客户端。 
	#tcp_nopush on; 
	#在开启了keepalived模式下的连接是否启用TCP_NODELAY选项,当为off 时,延迟发送,合并多个请求后再发送,默认On时,不延迟发送,立即发送用户相应报文。
	#tcp_nodelay off;  
	#在一次长连接上所允许请求的资源的最大数量,默认为100
	keepalive_requests 3; 
	#设置会话保持时间,长连接超时时间,单位是秒。
	keepalive_timeout 65 60; #后面的60为发送给客户端应答报文头部中显示的超时时间设置为60s:如不设置客户端将不显示超时时间。
	#对哪种浏览器禁用长连接
	#keepalive_disable none | browser ...; 
	#向客户端发送响应报文的超时时长,此处是指两次写操作之间的间隔时长,而非整个响应过程的传输时长。
	#send_timeout TIME; 
	#开启文件压缩
	#gzip on; 
	#server设置一个虚拟机主机,可以包含自己的全局块,同时也可以包含多个locating模块。比如本虚拟机监听的端口、本虚拟机的名称和IP配置,多个server 可以使用一个端口,比如都使用80端口提供web服务
	server {  
		#配置server监听的端口
		listen 80;  
		#设置server name,可以以空格隔开写多个并支持正则表达式
		server_name localhost; 
		#自定义错误页面
		error_page 500 502 503 504 /50x.html;
		location = /50x.html {  
			root html; 
		} 
		#自定义访问日志
		access_log /data/nginx/logs/www-magedu-net_access.log; 
		#自定义错误日志
		error_log /data/nginx/logs/www-magedu-net_error.log;
		#监测文件是否存在,不存在的uri会显示default,如果是自定义的状态码则会显示在返回数据的状态码中
		try_files $uri $uri/index.html $uri.html =489;#489就是自定义的状态返回码
		#设置编码格式,默认是俄语格式,可以改为utf-8
		#charset koi8-r;  
		#access_log logs/host.access.log main;
		#location其实是server的一个指令,为nginx服务器提供比较多而且灵活的指令,主要是基于nginx接收到的请求字符串,对用户请求的UIL进行匹配,并对特定的指令进行处理,包括地址重定向、数据缓存和应答控制等功能都是在这部分实现,另外很多第三方模块的配置也是在location模块中配置。
		location / {  
			#默认页面的目录名,默认是相对路径
			root html; 
			#默认页面的文件名
			index index.html index.htm; 
			#对客户端源IP地址进行访问限制,访问控制基于模块ngx_http_access_module实现
			deny 192.168.1.1; 
			allow 192.168.1.0/24;
	 	}
		#以http的方式转发php请求到指定web服务器
		#location ~ \.php$ { 
		# 	proxy_pass http://127.0.0.1; 
		#}
		#以fastcgi的方式转发php请求到php处理 
		#location ~ \.php$ { 
		# 	root html; 
		# 	fastcgi_pass 127.0.0.1:9000; 
		# 	fastcgi_index index.php; 
		# 	fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; 
		# 	include fastcgi_params; 
		#}
		#拒绝web形式访问指定文件,如很多的网站都是通过.htaccess文件来改 变自己的重定向等功能。
		location ~ /passwd.html { 
			deny all;
		}
	#favicon.ico图标
		#一:服务器不记录访问日志: 
		#location = /favicon.ico { 
		#	log_not_found off; 
		#	access_log off; 
		#} 
		#二:将图标保存到指定目录访问: 
		#location ~ ^/favicon\.ico$ { 
		location = /favicon.ico { 
			root /data/nginx/html/pc/images; 
		}
	#自定义虚拟server
	#server {  
	# 	listen 8000; 
	# 	listen somename:8080;
	# 	location / { 
	# 		root html; 
	#		指定默认网页文件,此指令由 ngx_http_index_module模块提供
	# 		index index.html index.htm; 
	#	} 
	#}
	#https服务器配置
	#server { 
	# 	listen 443 ssl; 
	# 	server_name localhost; 
	# 	ssl_certificate cert.pem; 
	# 	ssl_certificate_key cert.key; 
	# 	ssl_session_cache shared:SSL:1m; 
	# 	ssl_session_timeout 5m; 
	# 	ssl_ciphers HIGH:!aNULL:!MD5; 
	# 	ssl_prefer_server_ciphers on; 
	# 	location / { 
	# 		root html; 
	# 		index index.html index.htm; 
	# 	} 
	#}

#和邮件相关的配置 
#mail { 
# 	... 
# } mail 协议相关配置段 
#tcp代理配置,1.9版本以上支持 
#stream { 
#	 ... 
# } stream 服务器相关配置段 
}

#高级配置
#状态页:用于输出nginx的基本状态信息
#基于nginx模块ngx_http_auth_basic_module实现,在编译安装nginx的时候需要添加编译参数--with- http_stub_status_module
location /nginx_status { 
	stub_status;
}



常见优化:
worker_connections 65536;
use epoll;
accept_mutex on;
multi_accept on;
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值