介绍
小编给大家分享一下Nginx配置文件是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获、下面让我们一起去了解一下吧!
Nginx的主配置文件是Nginx。相依,这个配置文件一共由三部分组成,分别为全局块,活动块和http块。在http块中,又包含http全局块,多块个服务器。每个服务器块中,可以包含服务器全局块和多块个位置。在同一配置块中嵌套的配置块,各个之间不存在次序关系。
配置文件支持大量可配置的指令,绝大多数指令不是特定属于某一个块的。同一个指令放在不同层级的块中,其作用域也不同,一般情况下,高一级块中的指令可以作用于自身所在的块和此块包含的所有低层级块。如果某个指令在两个不同层级的块中同时出现,则采用”就近原则”,即以较低层级块中的配置为准。比如,某指令同时出现在http全局块中服务器和块中,并且配置不同,则应该服务器以块中的配置为准。
整个配置文件的结构大致如下:
#全局块 #用户没人; worker_processes 1; #事件块 事件{ worker_connections 1024; } # http块 http { # http全局块 包括mime.types; default_type应用程序/八进制; sendfile> #指定可以运行nginx服务的用户和用户组,只能在全局块配置 #用户(用户)(集团) #将用户指令注释掉,或者配置成没人的话所有用户都可以运行 #用户没人没人; #用户指令在Windows上不生效,如果你制定具体用户和用户组会报小面警告 # nginx:[警告]“user"软件不支持,忽略在D: \ \ nginx-1.18.0/conf/nginx.conf: 2 #指定工作线程数,可以制定具体的进程数,也可使用自动模式,这个指令只能在全局块配置 # worker_processes |汽车数量; #列子:指定4个工作线程,这种情况下会生成一个主进程和4个工人进程 # worker_processes 4; #指定pid文件存放的路径,这个指令只能在全局块配置 # pid日志/nginx.pid; #指定错误日志的路径和日志级别,此指令可以在全局块,服务器的http块,块以及定位块中配置。(在不同的块配置有啥区别? ?) #其中调试级别的日志需要编译时使用,利用调试开启调试开关 # error_log[路径][调试|信息| | | |错误警告通知暴击| |警告紧急情况) # error_log日志/错误。日志通知; # error_log日志/错误。日志信息;
事件块涉及的指令主要影响Nginx服务器与用户的网络连接。常用到的设置包括是否开启对多工作进程下的网络连接进行序列化,是否允许同时接收多个网络连接,选取哪种事件驱动模型处理连接请求,每个工作进程可以同时支持的最大连接数等。
这一部分的指令对Nginx服务器的性能影响较大,在实际配置中应该根据实际情况灵活调整。
#当某一时刻只有一个网络连接到来时,多个睡眠进程会被同时叫醒,但只有一个进程可获得连接。如果每次唤醒的进程数目太多,会影响一部分系统性能。在Nginx服务器的多进程下,就有可能出现这样的问题。 #开启的时候,将会对多个Nginx进程接收连接进行序列化,防止多个进程对连接的争抢 #默认是开启状态,只能在事件块中进行配置 # accept_mutex> #常用的浏览器中,可以显示的内容有HTML、XML、GIF及闪光灯等种类繁多的文本,媒体等资源,浏览器为区分这些资源,需要使用MIME类型。换言之,MIME类型是网络资源的媒体类型.Nginx服务器作为Web服务器,必须能够识别前端请求的资源类型。 # include指令,用于包含其他的配置文件,可以放在配置文件的任何地方,但是要注意你包含进来的配置文件一定符合配置规范,比如说你包括进来的配置是worker_processes指令的配置,而你将这个指令包含到了http块中,着肯定是不行的,上面已经介绍过worker_processes指令只能在全局块中。 #下面的指令将mime.types包含进来,mime.types和ngin.cfg同级目录,不同级的话需要指定具体路径 # include mime.types; #配置默认类型,如果不加此指令,默认值为文本/平原。 #此指令还可以在http块,服务器块或者位置块中进行配置。 # default_type应用程序/八进制; # access_log配置,此指令可以在http块,服务器块或者位置块中进行设置 #在全局块中,我们介绍过errer_log指令,其用于配置Nginx进程运行时的日志存放和级别,此处所指的日志与常规的不同,它是指记录Nginx服务器提供服务过程应答前端请求的日志 # access_log路径(格式(缓冲区大?)) #如果你要关闭access_log,你可以使用下面的命令 # access_log; # log_format指令,用于定义日志格式,此指令只能在http块中进行配置 # log_format主要& # 39;remote_addr - remote_user美元($ time_local]“request"美元;& # 39; # & # 39;地位body_bytes_sent美元“http_referer"美元;& # 39; # & # 39;“http_user_agent"美元;“美元http_x_forwarded_for" & # 39;; #定义了上面的日志格式后,可以以下面的形式使用日志 # access_log日志/访问。日志主要; #开启关闭sendfile方式传输文件,可以在http块,服务器块或者位置块中进行配置 # sendfile>//第一种 听地址[:端口][default_server] (ssl) [http2 | spdy] [proxy_protocol] [setfib=数量][fastopen=号][积压数量=][rcvbuf=大小][sndbuf=大小][accept_filter=过滤](延期)(绑定)[ipv6only=|关闭][reuseport] [so_keepalive=|关闭| [keepidle]: [keepintvl]: [keepcnt]];//第二种 听端口[default_server] [ssl] [http2 | spdy] [proxy_protocol] [setfib=数量][fastopen=号][积压数量=][rcvbuf=大小][sndbuf=大小][accept_filter=过滤](延期)(绑定)[ipv6only=|关闭][reuseport] [so_keepalive=|关闭| [keepidle]: [keepintvl]: [keepcnt]];//第三种(可以不用重点关注) 听unix:路径[default_server] (ssl) [http2 | spdy] [proxy_protocol][积压数量=][rcvbuf=大小][sndbuf=大小][accept_filter=过滤](延期)(绑定)[so_keepalive=|关闭| [keepidle]: [keepintvl]: [keepcnt]]; 指听令的配置非常灵活,可以单独制定ip,单独指定端口或者同时指定ip和端口。Nginx配置文件是什么