连载中 2/15

配置文件全景:main、events、http、server 的层级

2026-09-23 · 17 阅读 · 0 评论 · 0 赞

目录与文件

Linux 下 Nginx 的家在 /etc/nginx/:主配置 nginx.conf,日志在 /var/log/nginx/。主配置里通常用 include /etc/nginx/conf.d/*.conf; 把每个站点拆成独立文件——一个站点一个文件,别把所有 server 塞进主配置,改一个站点动全身是运维噩梦。

四层结构

main {                        # 全局:进程、用户、错误日志
    worker_processes auto;    # worker 数,auto = CPU 核数
    error_log /var/log/nginx/error.log warn;
}
events {                      # 连接模型
    worker_connections 10240; # 每个 worker 的最大连接数
}
http {                        # HTTP 全局:MIME、日志格式、压缩、超时
    include mime.types;
    gzip on;                  # 这里配的 gzip 对所有 server 生效
    server {                  # 一个虚拟主机 = 一个 server
        listen 80;
        server_name example.com;
        location / {          # 路由规则,下一篇细讲
            root /var/www/html;
        }
    }
}

理解层级的关键是继承:外层的指令会被内层继承,内层可以覆盖。所以"全局都压缩、某个接口不压缩"就写成 http 层 gzip on + 对应 location 里 gzip off。反过来,root 放在 location 里然后想给别的 location 用,就是放错层级的典型翻车——各层该放什么,地图上都有标。

指令生效的仪式

改完配置不是重启,是先检查再重载:nginx -t 做语法与语义检查(放错层级在这里会报 "unknown directive"),通过后 nginx -s reload 平滑加载。reload 的原理值得一提:master 收到信号后读新配置、fork 新 worker,新 worker 接新流量,旧 worker 把手头请求处理完再退出——全程不丢请求,不停服务。这就是"reload 能替代重启"的底气,也是生产环境永远优先 reload 的原因。

三个常见翻车

改了没 reload:配置是改了,进程里跑的还是旧的——reload 后再看。server_name 不匹配:两个 server 监听同一端口,请求按 Host 头找 server,找不到就落到 default(第一个定义的)——"为什么请求进了别人的 server"多半是这个。分号和花括号:指令必须以分号结尾,块必须有花括号,nginx -t 报的行号就是救命稻草。下一篇进最常用的 server 内部:location 匹配规则。

☕
503

10 年全栈工程师 · 503咖啡馆主理人

#nginx配置#nginx.conf#层级结构#reload#server_name

评论 (0)

热门推荐

连载中 11/22

主从搭建实操:从零配出一主两从

光讲原理不过瘾?手把手搭一主两从:my.cnf 六个参数、复制账号、GTID、CHANGE REPLICATION SOURCE TO、SHOW REPLICA STATUS 验收,附翻车排查清单。

#MySQL#主从复制#GTID#主从搭建#高可用
2026-05-07 · 10101 阅读 · 0 评论 · 0 赞
连载中 16/22

连接池:HikariCP 参数与连接风暴

连接池不是越大越好:8 核机器配 1000 连接反而更慢的数学原理,HikariCP 四个必调参数,maxLifetime 与 wait_timeout 的隐形陷阱。

#MySQL#连接池#HikariCP#maxLifetime#连接风暴
2026-05-10 · 9873 阅读 · 0 评论 · 0 赞
连载中 4/16

缓存穿透:恶意 ID 打穿 MySQL 的四道防线

请求的数据在缓存和数据库里都不存在时,缓存形同虚设。聊聊参数校验、空值缓存、布隆过滤器、限流熔断四道防线的原理与组合打法。

#Redis#缓存穿透#布隆过滤器#高可用
2026-05-16 · 9294 阅读 · 21 评论 · 287 赞