nginx

Nginx 服务与配置管理

补充说明

nginx 是 Web 服务器和反向代理,配置由 http、server、location 层级组成。改配置后要先测试再 reload,避免把线上打挂。

常用示例

nginx
nginx -t
nginx -T
nginx -s reload
nginx -s quit
nginx -s stop
nginx -V

最小反向代理:

server {
    listen 80;
    server_name app.example.com;

    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

易错点与排错

相关命令

读完自测

合上页面,先回答,再展开对照。

  1. 修改 nginx 配置后的正确操作顺序是什么?
  2. root 和 alias 的路径拼接有什么不同?
  3. 反向代理为什么必须透传 Host 和 X-Forwarded-*?
答案
  1. 先 nginx -t 校验,再 nginx -s reload 平滑加载。
  2. root 把 location 的 URI 拼到根目录后;alias 用 alias 路径替换 location 部分,结尾斜杠很容易出错。
  3. 否则后端可能生成错误的重定向 URL,并丢失原始客户端 IP 和协议信息。