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
实现了反向代理同时还去除了路径前缀
