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