Nginx 常用知识-rewrite,根据url路径名匹配并重写url路径

URL 重写 rewrite

语法:rewrite regex replacement [flag];
rewrite :固定写法
regex:正则表达式,
replacement:替换重写后的url
[flag]:

  • break :跳出,不会执行到下一个locate
  • redirect :重定向,前端返回302,将重写后的url返回给客户端(也可以方便用来检测自己的重写是否正确)
  • permanent :返回301状态码,重写url返回客户端与,redirect相似
  • last :终止请求在该location匹配,重写转发到其他的location

实战例子

需求描述

实现例如 http://10.1.1.111/api/order 的请求可以转发到 http://10.1.1.10:8080/order的转发

其主要的目的是根据/api/的请求 转发给10.1.1.10:8080中去,并且*`剔除掉请求中的/api/**
配置如下

 upstream spboot {
    
    
	server 10.1.1.10:8080;
   }

server {
    
    
	listen 80;
        server_name spboot;
    	location /api/ {
    
    
		rewrite ^(/api)(.*)$ $2 break;
		proxy_pass http://spboot;
		keepalive_timeout 60s;
	    proxy_set_header Host $host:$server_port;
	    proxy_set_header X-Real-IP $remote_addr;
	}    
 }

参考官方文档:
http://nginx.org/en/docs/http/converting_rewrite_rules.html
http://nginx.org/en/docs/http/ngx_http_rewrite_module.html

猜你喜欢

转载自blog.csdn.net/weixin_48470176/article/details/118881706