全书目录

第十七篇:Nginx 完全指南 —— 城市总闸口宇宙

第二章:先认城市总闸口的总图 —— 配置文件的层级关系

1 分钟 99 字 第 322 / 962 个阅读单元

Nginx 配置不是一堆散乱指令,它是分层的。

nginx
worker_processes auto;

events {
    worker_connections 1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    upstream api_backend {
        server 127.0.0.1:3001;
        server 127.0.0.1:3002;
    }

    server {
        listen 80;
        server_name example.com;

        location / {
            root /srv/www/site;
        }

        location /api/ {
            proxy_pass http://api_backend;
        }
    }
}

把它翻译成“城市总闸口”语言:

text
main     -> 总闸口总控制室
events   -> 并发接待规则
http     -> HTTP 城区总规划
upstream -> 后方多个业务区的编组名单
server   -> 某个域名/端口对应的一道正式闸门
location -> 这道闸门里面更细的分流车道

概念关系图如下:

text
nginx.conf
├── main
│   ├── worker_processes
│   └── error_log
├── events
│   └── worker_connections
└── http
    ├── log_format / access_log
    ├── proxy_cache_path
    ├── upstream
    └── server
        ├── listen
        ├── server_name
        └── location
            ├── root / alias
            ├── try_files
            ├── proxy_pass
            ├── return / rewrite
            └── access_log / add_header

初学时你只要先记住一句话:

server 决定“进哪道闸门”,location 决定“走哪条车道”。