大家好,又见面了,我是你们的朋友全栈君。
比如,以前是 http://vampire.com/elasticsearch 现在要转到http://vampire.com/search 配置如下:
代码语言:javascript复制upstream localhost {
server 127.0.0.1:8080 max_fails=7 fail_timeout=7s;
server 127.0.0.1:8081 max_fails=7 fail_timeout=7s;
}
server {
listen 81;
server_name localhost;
location / {
root html;
index index.html index.htm;
proxy_pass http://localhost;
rewrite /elasticsearch/(.*) /search/$1;#elasticsearch 转发到 sesarch
}
}
rewrite /elasticsearch/(.*) /search/$1;
可以写在location外面,即:
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
proxy_pass http://localhost;
}
rewrite /elasticsearch/(.*) /search/$1;#elasticsearch 转发到 sesarch
}
解释:
nginx 的 rewrite 语法 语法: rewrite regex replacement flag 默认: none 作用域: server, location, if 此指令根据表达式来更改URI,或修改字符串。 指令根据配置文件中的顺序来执行。
- rewrite 正则表达式 替换值 标记
- 正则表达式 ,此处用于匹配url,此url为相对路径,即:如果你的访问路径是
http://www.vampire.com/elasticsearch/getAllUser?token=xxxxxxxx
,那么在此处的值就是:/elasticsearch/getAllUser?token=xxxxxxxx
。正则表达式中,一个括号内是一个值,这些值在“替换值”中可以使用 1 1~99使用,稍后介绍。 - 替换值 即用此值替换正则表达式匹配的值。此处可以使用相对路径或者绝对路径,即可以写
http://www.vampire.com/search/
,也可以写/search/
。 - 标记 break,last,redirect,permanent 有四个值,见文:Nginx中的rewrite指令(break,last,redirect,permanent)
- 当在正则表达式中使用
/elasticsearch/(.*)
后,在替换值中,使用$1
可以访问到(.*)
中匹配到的值
- 正则表达式 ,此处用于匹配url,此url为相对路径,即:如果你的访问路径是
- 它可以在server location 和 if 语句三个位置使用,使用方法相同
- if 语句的使用方法,应该是nginx rewrite使用的精髓,也是最复杂的,这里没用到,就先不介绍了。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/189455.html原文链接:https://javaforall.cn