Nginx 配置文件解读

编程入门 行业动态 更新时间:2024-10-19 15:38:19

Nginx <a href=https://www.elefans.com/category/jswz/34/1770506.html style=配置文件解读"/>

Nginx 配置文件解读

一.配置文件解读

nginx配置文件主要分为四个部分

main{ #(全局设置)http{ #服务器配置upstream{} #(负载均衡服务器设置)server{ #(主机设置:主要用于指定主机和端口)location{} #(URL匹配的设置)}}
}

server继承自httplocation继承自serverupstream即不会继承其他设置也不会被继承。

1.1、main 全局配置

nginx在运行时与具体业务功能无关的一些参数,比如工作进程数,运行的身份等。

user liming;
worker_processes 4;
worker_cpu_affinity 0001 0010 0100 1000;
error_log  /data/nginx/logs/error.log  crit;
pid        /data/nginx/logs/nginx.pid;
worker_rlimit_nofile 65535;
  • user nginx: 指定nginx进程使用什么用户启动
  • worker_processes 4: 指定启动多少进程来处理请求,一般情况下设置成CPU的核数,如果开启了ssl和gzip应该设置成与逻辑CPU数量一样甚至为2倍,可以减少I/O操作。使用grep ^processor /proc/cpuinfo | wc -l查看CPU核数。
  • worker_cpu_affinity 0001 0010 0100 1000: 在高并发情况下,通过设置将CPU和具体的进程绑定来降低由于多核CPU切换造成的寄存器等现场重建带来的性能损耗。如worker_cpu_affinity 0001 0010 0100 1000; (四核)。
  • error_log logs/error.log: error_log是个主模块指令,用来定义全局错误日志文件。日志输出级别有debug、info、notice、warn、error、crit可供选择,其中,debug输出日志最为最详细,而crit输出日志最少。
  • pid logs/nginx.pid: 指定进程pid文件的位置

我们可以使用ps -ef | grep nginx查看masterworker的进程,这里有一个master和四个worker:

1.2、events模块

events 模块主要是nginx 和用户交互网络连接优化的配置内容,我们主要看一下两个配置:

events{use epoll;worker_connections  65536;
}
  • use epoll:是使用事件模块指令,用来指定Nginx的工作模式。Nginx支持的工作模式有select、poll、kqueue、epoll、rtsig和/dev/poll。其中select和poll都是标准的工作模式,kqueue和epoll是高效的工作模式,不同的是epoll用在Linux平台上,而kqueue用在BSD系统中。对于Linux系统,epoll工作模式是首选。在操作系统不支持这些高效模型时才使用select。
  • worker_connections 65536:每一个worker进程能并发处理(发起)的最大连接数。
1.3、http服务器
http{include       mime.types;default_type  application/octet-stream;#charset  gb2312;sendfile        on;keepalive_timeout  60s;
}
  • include:是个主模块指令,实现对配置文件所包含的文件的设定,可以减少主配置文件的复杂度。该文件也在conf目录中。
  • default_type:属于HTTP核心模块指令,这里设定默认类型为二进制流,也就是当文件类型未定义时使用这种方式。
  • charset gb2312: 指定客户端编码格式。
  • sendfile:实际上是 Linux2.0+以后的推出的一个系统调用,web服务器可以通过调整自身的配置来决定是否利用 sendfile这个系统调用。sendfile是个比 read 和 write 更高性能的系统接口。 当 Nginx 是一个静态文件服务器的时候,开启 SENDFILE 配置项能大大提高 Nginx 的性能。 但是当 Nginx 是作为一个反向代理来使用的时候,SENDFILE 则没什么用。
  • Nginx 使用 keepalive_timeout 来指定 KeepAlive 的超时时间(timeout)。指定每个 TCP 连接最多可以保持多长时间。Nginx 的默认值是 75 秒,有些浏览器最多只保持 60 秒,所以可以设定为 60 秒。若将它设置为 0,就禁止了 keepalive 连接。

更多推荐

Nginx 配置文件解读

本文发布于:2023-12-07 12:10:02,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1671171.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:配置文件   Nginx

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!