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命令重新加載配置