Nginx常用配置中文注释

    技术2022-07-11  142

    #全局配置,主要设置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;
    Processed: 0.010, SQL: 9