nginx url转发的一种方式「建议收藏」

nginx url转发的一种方式「建议收藏」比如,以前是http://vampire.com/elasticsearch现在要转到http://vampire.com/search配置如下:server{listen81;server_namelocalhost;location/{roothtml;indexindex.htmlinde

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

比如,以前是 http://vampire.com/elasticsearch
现在要转到http://vampire.com/search
配置如下:

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,或修改字符串。
指令根据配置文件中的顺序来执行。

  1. rewrite 正则表达式 替换值 标记

    • 正则表达式 ,此处用于匹配url,此url为相对路径,即:如果你的访问路径是 http://www.vampire.com/elasticsearch/getAllUser?token=xxxxxxxx,那么在此处的值就是:/elasticsearch/getAllUser?token=xxxxxxxx。正则表达式中,一个括号内是一个值,这些值在“替换值”中可以使用 1  99使用,稍后介绍。
    • 替换值 即用此值替换正则表达式匹配的值。此处可以使用相对路径或者绝对路径,即可以写http://www.vampire.com/search/,也可以写/search/
    • 标记 break,last,redirect,permanent 有四个值,见文:Nginx中的rewrite指令(break,last,redirect,permanent)
    • 当在正则表达式中使用/elasticsearch/(.*)后,在替换值中,使用$1可以访问到(.*)中匹配到的值
  2. 它可以在server location 和 if 语句三个位置使用,使用方法相同

  3. if 语句的使用方法,应该是nginx rewrite使用的精髓,也是最复杂的,这里没用到,就先不介绍了。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/189455.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号