nginx反向代理去除前缀

背景:vue项目部署到linux服务器,前端项目和后台项目部署同一台服务器,需要用到nginx做反向代理

需求:

当前有访问地址

请求中需要去掉

下面对nginx.config进行配置

通过rewrite重写url

#keepalive_timeout 0; keepalive_timeout 65;

#gzip on; upstream test-service { server 127.0.0.1:8083; }

server { listen 8087; server_name localhost; location / { root /usr/local/nginx/html/dist; try_files $uri $uri/ /index.html =404; index home.html index.html index.htm; chunked_transfer_encoding on; add_header Cache-Control no-cache; }

location ~ ^// { 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 REMOTE-HOST $remote_addr;

rewrite ^//(.*)$ /$1 break; proxy_pass http://test-service; } }

~ ^//表示匹配前缀是的请求,rewrite重写了url。 即//*后面的路径直接拼接到http://test-service后面,即移除。

此时访问

就如同访问127.0.0.1:8083

实现了反向代理同时还去除了路径前缀

经验分享 程序员 微信小程序 职场和发展