跳转到内容

nginx-guide

Nginx 是一个高性能的 HTTP 和反向代理 Web 服务器,同时也提供了 IMAP/POP3/SMTP 服务。其因具有占有内存少、并发能力强等特点,在云原生和互联网架构中得到了极其广泛的应用。

将匹配到的特定 URL 路由请求转发至后端应用服务器(例如本地的 8080 端口):

location /test1 {
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;
}

配置静态资源根目录,支持高效的文件读取:

location /static/ {
alias /var/www/static/;
expires 30d;
access_log off;
}

若需要支持 WebSocket 协议转发,需显式升级 Connection 和 Upgrade 请求头:

location /ws {
proxy_pass http://127.0.0.1:8080;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
}

Nginx 依靠 location 指令匹配请求的 URI,以下是匹配规则的优先级顺序及原理图解:

  1. location = /uri:精确匹配。
  2. location ^~ /uri:前缀匹配,一旦匹配成功,停止往下搜索正则匹配。
  3. location ~ pattern:区分大小写的正则匹配。
  4. location ~* pattern:不区分大小写的正则匹配。
  5. location /uri:通用前缀匹配。

Location 匹配参数图解