Nginx配置文件(ubuntu)

root@ubuntu:~$ grep process /proc/cpuinfo  | wc -l #确认CPU的核心数量
root@ubuntu:~$ vim /etc/nginx/nginx.conf
user www-data;
#worker_processes auto;#可以指定启动的固定nginx进程数,或使用auto,auto是启动与当前CPU 线程相同的进程数,如CPU是四核八线程的就启动八个进程的Nginx工作进程。
#四个线程CPU的配置:
worker_processes  4; 
worker_cpu_affinity 0001 0010 0100 1000;

#八个线程CPU的配置:
#worker_processes  8; 
#worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;

pid /run/nginx.pid; #进程pid存放位置

include /etc/nginx/modules-enabled/*.conf;

#events设置块,工作模式及连接数上限:主要影响nginx服务器与用户的网络连接,比如是否允许同时接受多个网络连接,使用哪种事件驱动模型处理请求,每个工作进程可以同时支持的最大连接数,是否开启对多工作进程下的网络连接进行序列化等。

events {
    use epoll;#epoll是多路复用IO(I/O Multiplexing)中的一种方式,但是仅用于linux2.6以上内核,可以大大提高nginx的性能
	worker_connections 768; #设置nginx可以接受的最大并发
	# multi_accept on;
}
#http块:缓存、代理和日志格式定义等绝大多数功能和第三方模块都可以在这设置,http块可以包含多个server块,server块中可以包含多个location块
http {

	sendfile on;#开启高效传输模式 
	tcp_nopush on; #激活tcp_nopush参数可以允许把httpresponse header和文件的开始放在一个文件里发布,积极的作用是减少网络报文段的数量防止网络阻塞
	tcp_nodelay on;#激活tcp_nodelay,内核会等待将更多的字节组成一个数据包,从而提高I/O性能防止网络阻塞
	keepalive_timeout 65;  #连接超时时间,单位是秒
	types_hash_max_size 2048;
	server_tokens off; #隐藏响应header和错误通知中的版本号
    #autoindex on; #开启目录列表访问,适合下载服务器,默认关闭。

	# server_names_hash_bucket_size 64; #服务器名字的hash表大小
	# server_name_in_redirect off;

    #limit模块,可防范一定量的DDOS攻击
    #用来存储session会话的状态,如下是为session分配一个名为one的10M的内存存储区,限制了每秒只接受一个ip的一次请求 1r/s
    limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;
    limit_conn_zone $binary_remote_addr zone=addr:10m;

	include /etc/nginx/mime.types;  #文件扩展名与文件类型映射表
	default_type application/octet-stream;#默认文件类型

	##
	# SSL Settings
	##

	ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # Dropping SSLv3, ref: POODLE
	ssl_prefer_server_ciphers on;

	##
	# Logging Settings
	##

	access_log /var/log/nginx/access.log;
	error_log /var/log/nginx/error.log;

    #error_log支持的日志级别:
    #语法:
    #error_log file [ debug | info | notice | warn | error | crit ]  | [{  debug_core | debug_alloc | debug_mutex | debug_event | debug_http | debug_mail | debug_mysql } ]
    #日志级别 = 错误日志级别 | 调试日志级别; 或者
    #日志级别 = 错误日志级别;
    #错误日志的级别: emerg, alert, crit, error, warn, notic, info, debug, 
    #调试日志的级别: debug_core, debug_alloc, debug_mutex, debug_event, debug_http, debug_mail, debug_mysql

    #error_log 指令的日志级别配置分为错误日志级别和调试日志级别,错误日志只能设置一个级别,而且错误日志必须书写在调试日志级别的前面,另外调试日志可以设置多个级别,其他配置方法可能无法满足需求。
	##
	# Gzip Settings
	##

	gzip on; #开启gzip压缩功能
    gzip_min_length  1k;#设置允许压缩的页面最小字节数,页面字节数从header头的Content-Length中获取。默认值是0,表示不管页面多大都进行压缩。建议设置成大于1K。如果小于1K可能会越压越大。
    gzip_buffers  4 16k;#压缩缓冲区大小。表示申请4个单位为16K的内存作为压缩结果流缓存,默认值是申请与原始数据大小相同的内存空间来存储gzip压缩结果。
    gzip_http_version 1.0;#压缩版本(默认1.1,前端为squid2.5时使用1.0)用于设置识别HTTP协议版本,默认是1.1,目前大部分浏览器已经支持GZIP解压,使用默认即可。
    gzip_comp_level 6;#压缩比率。用来指定GZIP压缩比,1压缩比最小,处理速度最快;9压缩比最大,传输速度快,但处理最慢,也比较消耗cpu资源。
    gzip_types       text/plain application/x-javascript text/css application/xml text/javascript application/javascript text/xml application/xml+rss;#用来指定压缩的类型,“text/html”类型总是会被压缩
    
    gzip_vary off;#vary header支持。该选项可以让前端的缓存服务器缓存经过GZIP压缩的页面,例如用Squid缓存经过Nginx压缩的数据。

	## gzip_vary on;
	# gzip_proxied any;
	## gzip_comp_level 6;
	## gzip_buffers 16 8k;
	## gzip_http_version 1.1;
	## gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

    #FastCGI相关参数是为了改善网站的性能:减少资源占用,提高访问速度。下面参数看字面意思都能理解。
    fastcgi_connect_timeout 300; #指定连接到后端fastCGI的超时时间
    fastcgi_send_timeout 300; #向fastCGI请求的超时时间,这个值是指已经完成两次握手后向    fastCGI传送的超时时间
    fastcgi_read_timeout 300; #接收fastCGI应答的超时时间,这个值已经完成两次握手后接收    fastCGI应答的超时时间
    fastcgi_buffer_size 64k; #指定读取fastCGI应答第一部分需要用多大的缓冲区,一般第一部分应答不会超过1k,一般设置为64k
    fastcgi_buffers 4 64k; #指定本地需要用多少和多大的缓冲区来缓冲fastCGI的应答
    fastcgi_busy_buffers_size 128k;  #默认值是fastcgi_buffers的两倍
    fastcgi_temp_file_write_size 128k; #在写入fastcgi_temp_path是用多大的数据块,默认值是    fastcgi_buffers两倍

	##
	# Virtual Host Configs
	##

	include /etc/nginx/conf.d/*.conf;
	include /etc/nginx/sites-enabled/*;
}


#mail {
#	# See sample authentication script at:
#	# http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript
# 
#	# auth_http localhost/auth.php;
#	# pop3_capabilities "TOP" "USER";
#	# imap_capabilities "IMAP4rev1" "UIDPLUS";
# 
#	server {
#		listen     localhost:110;
#		protocol   pop3;
#		proxy      on;
#	}
# 
#	server {
#		listen     localhost:143;
#		protocol   imap;
#		proxy      on;
#	}
#}

关于server模块虚拟机网站的配置请看另一篇博客LANMP实现反向代理(动静态分离)以及负载均衡并设置文件资源缓存和防盗链

猜你喜欢

转载自blog.csdn.net/qq_38157006/article/details/89553041
今日推荐