LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

NGINX配置文件详解

admin
2025年12月10日 21:32 本文热度 7
  • nginx官方文档https://nginx.org/en/docs/

  • 默认的配置文件nginx.conf

  • 配置文件由指令与指令块构成;

  • 每条指令以 ; 分号结尾,指令与参数间以空格符号分隔;

  • 指令块以{}大括号将多条指令组织在一起;

  • 修改完配置文件后使用nginx -t 检查语法是否正确,使用nginx -s reload 重载配置文件;

[root@vmware-linux sbin]# ./nginx -tnginx: the configuration file /opt/nginx/conf/nginx.conf syntax is oknginx: configuration file /opt/nginx/conf/nginx.conf test is successful[root@vmware-linux sbin]# ./nginx -s reload

全局配置块

#设置启动ng的用户及用户组user  nginx nginx;#启动worker进程的数量,一般是CPU的总核数,如8核16线程,可设置为16;#为了在不同服务器批量部署可直接设置成auto。开启的worker进程数量可通过 ps -ef | grep ngi查看worker_processes  4;#把worker进程跟CPU核心一对一绑定,示例配置是4核心绑定,#减少worker进程在不同的cpu核心上来回跳,提升ngx的性能,#属于优化项,通过 ps axo pid,cmd,psr | grep nginx查看worker进程绑定的核心。worker_cpu_affinity 0001 0010 0100 10000 ;#错误日志配置(默认注释,取消注释可启用)error_log  logs/error.log;#error_log  logs/error.log  notice;# 记录 notice 级别及以上日志#error_log  logs/error.log  info;# 记录 info 级别及以上日志(更详细,适合调试)# 主进程 PID 文件路径,与 systemd 服务配置中的 PIDFile 对应,用于进程管理pid        /opt/nginx/run/nginx.pid;worker_priority 0;#worker进程优先级,越小优先级越高,取值-20-19worker_rlimit_nofile 40000 #worker进程能打开的文件数量,一般是worker_connections数量乘以worker_process数量,实际还受系统文件描述符限制,ulimit -n查看限制#daemon off; #前台运行nginx,一般容器运行时需要设为off

event配置块

events {
#配置单个woker进程的可接受最大并发连接数,总并发连接数 ≈ worker_processes × worker_connections    worker_connections  10000;use epoll#epoll是一种高效的io复用机制,能有效提高ngx的性能accept_mutex on#当新连接到达时,若关闭 accept_mutex(默认 off),        #所有空闲的工作进程会同时被唤醒争抢连接,导致大量进程上下文切换,浪费 CPU 资源(即 “惊群效应”);#开启后(on),Nginx 会通过互斥锁(mutex)保证同一时间只有一个工作进程被唤醒处理新连接,减少无效争抢,        #降低系统开销multi_accept on;#允许单个工作进程一次接收多个新连接,提高连接处理效率}

http配置块

http {# 引入 MIME 类型映射文件(定义不同文件后缀对应的 Content-Type,如 .html 对应 text/html)    include       mime.types;# 未匹配到 MIME 类型时的默认类型(二进制流,浏览器会下载文件)    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"';# 字段含义:    # $remote_addr:客户端 IP;$remote_user:认证用户;$time_local:访问时间;    # $request:请求方法+URL+协议(如 GET /index.html HTTP/1.1);    # $status:响应状态码;$body_bytes_sent:发送给客户端的字节数;    # $http_referer:Referer 来源页面;$http_user_agent:客户端浏览器标识;    # $http_x_forwarded_for:代理链中的客户端真实 IP(若经过代理)
#访问日志存储位置    #access_log  logs/access.log  main;## 启用 sendfile 系统调用(直接在内核空间传输文件,减少用户态与内核态切换,提升性能)    sendfile        on;    #确保数据包在发送前已充分填满,主要用来减少网络包的数量    tcp_nopush     on;    #Nagle 算法:TCP 协议默认启用的一种优化机制,目的是减少网络中小数据包的数量(避免 “小包风暴”)。它会将多个小数据包暂存,等待一定时间或积累到一定大小后再合并发送。    #但这会带来 传输延迟,tcp_nodelay  on禁用 Nagle 算法,让 TCP 连接 立即发送每个小数据包,不等待合并,从而减少数据传输的延迟。    #tcp_nodelay    on;        #keepalive_timeout  0;# 关闭长连接(每次请求后断开 TCP 连接)    keepalive_timeout  65; # 长连接超时时间(客户端与服务器保持连接的时间,65 秒内再次请求无需重新握手)        gzip  on; #启用 gzip 压缩(减少传输数据量,节省带宽)    include /etc/nginx/conf.d/*.conf; #配置文件目录    server {        listen       80 default_server; #监听端口,当有多个网站时default_server表示这是默认网站,若无default_server,则排在前面的server为默认网站        server_name  www.abc.com;#绑定的域名,可以写多个,空格分隔,如a.com b.com;还支持正则表达式,如*.abc.com服务端通过http请求头中host字段值确定访问的是哪个域名。#指定nginx解析用的dns服务器,并且关闭ipv6。有时候ngx所在环境不支持ipv6,解析到ipv6后会出现转发访问失败。 resolver 8.8.8.8 223.5.5.5  valid=30s ipv6=off;  charset UTF-8; #字符集设置 server_tokens off; #不给客户端显示ngx的版本        #访问日志        access_log  logs/host.access.log  main;        location / {            root   html; # 网站根目录            index  index.html index.htm; 默认主页文件名        }               #error_page  404              /404.html;        #404返回页面        # redirect server error pages to the static page /50x.html        #        error_page   500 502 503 504  /50x.html;         #500系列错误返回页        location = /50x.html {            root   html;        }        # proxy the PHP scripts to Apache listening on 127.0.0.1:80        #                #location ~ \.php$ {        #    proxy_pass   http://127.0.0.1;        #}    }

两个简单server配置示例 

# another virtual host using mix of IP-, name-, and port-based configuration    # 另外的示例配置,监听8000端口    server {        listen       8000;        listen       somename:8080;        server_name  somename  alias  another.alias;
#请求/时指定网站根目录为html文件夹,通过index指定首页文件        location / {            root   html;            index  index.html index.htm;        }    }    #https 配置  server {        listen       443 ssl; 监听443 端口,启用 SSL        server_name  localhost;        ssl_certificate      cert.pem; # SSL 证书路径        ssl_certificate_key  cert.key; # 证书私钥路径        ssl_session_cache    shared:SSL:1m; # SSL 会话缓存        ssl_session_timeout  5m; # 会话超时时间        ssl_ciphers  HIGH:!aNULL:!MD5; # 加密算法套件(优先高安全性算法)        ssl_prefer_server_ciphers  on; # 优先使用服务器定义的加密算法 ssl_protocols TLSv1.2 TLSv1.3 #定义协议版本        location / {            root   html;            index  index.html index.htm;        }    }}


阅读原文:原文链接


该文章在 2025/12/11 9:21:15 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2025 ClickSun All Rights Reserved