熟悉nginx的同学应该了解,nginx.conf配置文件中默认有三大块:全局块、events块、http块,http块中可以配置多个server块,每个server块又可以配置多个location块。本篇对nginx.conf配置文件中的常用指令块做一个较详细的介绍。全局块1、user指令user: 用于配置运行Nginx服务器的worker进程的用户和用户组该属性也可以在编译的时候指定,语法如下 ./configure -- user=user --group=group,如果两个地方都进行了设置,最终生效的是配置文件中的配置。指令使用目的使用user指令可以指定启动运行工作进程的用户及用户组,这样对于系统的权限访问控制更加精细,也更加安全。2、work process指令正常情况下,当开启nginx服务后,使用ps命令可以看到当前有两个进程如果将worker_processes设置成2,则会看到如下内容:3、daemon指令设定Nginx是否以守护进程的方式启动守护式进程是Linux后台执行的一种服务进程,特点是独立于控制终端,不会随着终端关闭而停止。4、pid指令用来配置Nginx当前master进程的进程号ID存储的文件路径。该属性可以通过./configure -- pid-path=PATH来指定5、error_log用来配置Nginx的错误日志存放路径该属性可以通过./configure -- error-log-path=PATH来指定其中日志级别的值有:debug|info|notice|warn|error|crit|alert|emerg,翻译过来为调试 | 信息 | 通知 | 警告 | 错误 | 临界 | 警报 | 紧急,建议大家设置的时不要设置成info以下等级,会带来大量的磁盘I/O消耗,影响Nginx性能;6、include用来引入其他配置文件,使Nginx的配置更加灵活events块events块中可配置的指令包括如下,分别做说明1、accept_mutex用来设置Nginx网络连接序列化这个配置主要可以用来解决常说的"惊群"问题。大致意思是在某一个时刻,客户端发来一个请求连接,Nginx后台是以多进程的工作模式,也就是说有多个worker进程会被同时唤醒,但是最终只会有一个进程可以获取到连接,如果每次唤醒的进程数目太多,就会影响Nginx的整体性能。如果将上述值设置为on(开启状态),将会对多个Nginx进程接收连接进行序列号,一个个来唤醒接收,就防止了多个进程对连接的争抢;2、multi_accept用来设置是否允许同时接收多个网络连接如果multi_accept被禁止了,nginx一个工作进程只能同时接受一个新的连接。否则,一个工作进程可以同时接受所有的新连接;3、worker_connections用来配置单个worker进程最大的连接数这里的连接数不仅仅包括和前端用户建立的连接数,而是包括所有可能的连接数。另外,number值不能大于操作系统支持打开的最大文件句柄数量。4、user用来设置Nginx服务器选择哪种事件驱动来处理网络消息注意:此处所选择事件处理模型是Nginx优化部分的一个重要内容,method的可选值有select/poll/epoll/kqueue等,之前在准备centos环境的时候,我们强调过要使用Linux内核在2.6以上,就是为了能使用epoll函数来优化Nginx。另外下面这些值也可以在编译的时候选择使用:--with-select_module、--without-select_module、--with-poll_module、--without-poll_module来设置是否需要将对应的事件驱动模块编译到Nginx的内核;events指令配置实例http块http模块是nginx.conf配置文件中最重要的部分,日常开发中最重要的配置几乎都是在这个模块中进行的;1、定义MIME-Type我们都知道浏览器中可以显示的内容有HTML、XML、GIF等种类繁多的文件、媒体等资源,浏览器为了区分这些资源,就需要使用MIME Type。所以说MIME Type是网络资源的媒体类型。Nginx作为web服务器,也需要能够识别前端请求的资源类型;在Nginx的配置文件中,默认有两行配置include mime.types; default_type application/octet-stream;default_type用来配置Nginx响应前端请求默认的MIME类型。在default_type之前还有一句include mime.types,include之前我们已经介绍过,相当于把mime.types文件中MIMT类型与相关类型文件的文件后缀名的对应关系加入到当前的配置文件中;举例说明:有些时候请求某些接口的时候需要返回指定的文本字符串或者json字符串,如果逻辑非常简单或者干脆是固定的字符串,那么可以使用nginx快速实现,这样就不用编写程序响应请求了,可以减少服务器资源占用并且响应性能非常快。配置实现如下:配置完毕后,重启nginx,浏览器分别访问上面两个路径,均能满足预期的效果2、自定义服务日志Nginx中日志的类型分access.log、error.logNginx服务器支持对服务日志的格式、大小、输出等进行设置,需要使用到两个指令,分别是access_log和log_format指令。access_log用来设置用户访问日志的相关属性log_format用来指定日志的输出格式其他配置指令1、sendfile用来设置Nginx服务器是否使用sendfile()传输文件,该属性可以大大提高Nginx处理静态资源的性能2、keepalive_timeout用来设置长连接的超时时间3、keepalive_requests用来设置一个keep-alive连接使用的次数补充说明:为什么要使用keepalive?————————————————版权声明:本文为CSDN博主「逆风飞翔的小叔」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:nginx常用指令配置总结_逆风飞翔的小叔的博客-CSDN博客(侵删)