1.語法
rewrite "用來匹配路徑的正則" 重寫后的路徑 [指令];
2.案例
server { listen 80; server_name api.shunwang.com; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 上傳路徑的映射 location /api/upload { proxy_pass http://127.0.0.1:8082; proxy_connect_timeout 600; proxy_read_timeout 600; rewrite "^/api/(.*)$" /$1 break; # /$1匹配的參數 } }
3.解釋
rewrite "^/api/(.*)$" /$1 break,路徑重寫: "^/api/(.*)$":匹配路徑的正則表達式,用了分組語法,把/api/以后的所有部分當做1組 /$1:重寫的目標路徑,這里用$1引用前面正則表達式匹配到的分組(組編號從1開始),即/api/后面的所有。這樣新的路徑就是除去/api/以外的所有,就達到了去除/api前綴的目的 break:指令,常用的有2個,分別是:last、break last:重寫路徑結束后,將得到的路徑重新進行一次路徑匹配 break:重寫路徑結束后,不再重新匹配路徑。 nginx -s reload命令重新加載配置