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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java 数组转化为list_java中如何将数组转为list集合?

    java 数组转化为list_java中如何将数组转为list集合?java中将数组转为list集合的方法:1、使用原生方式,使用for()循环来拆分数组,并添加到List中;2、使用Arrays.asList()方法;3、使用Collections.addAll()方法;4、使用List.of()方法。问题描述:对于给定的如下数组,如何转换成List集合?String[]array={“a”,”b”,”c”};参考stackoverflow总结如下几种写法…

    2022年6月22日
    39
  • rinetd双网卡端口转发(java请求转发)

    目前云数据库Redis版需要通过ECS进行内网连接访问。如果您本地需要通过公网访问云数据库Redis,可以在ECSLinux云服务器中安装rinetd进行转发实现。在云服务器ECSLinux中安装rinetd。wgethttp://www.boutell.com/rinetd/http/rinetd.tar.gz&&tar-…

    2022年4月17日
    86
  • Android 在本地应用 启动抖音(进入主页)

    Android 在本地应用 启动抖音(进入主页)

    2021年3月12日
    653
  • aria2 txt导入_共一章 · mac下使用Aria2教程-迅雷和百度盘终极解决方案 · 看云[通俗易懂]

    #1.第一步:安装aria2##1.1下载并安装aria2下载最新的mac版本aria2(目前是1.19.3),以下提供三种下载方式(推荐第三种):1.[官网地址,可以下载其他版本](https://aria2.github.io)2.[本人百度云地址](https://pan.baidu.com/s/1ggfyQsj)密码:nyr13.[点击直接下载,aria2-1.19.3-…

    2022年4月14日
    37
  • 用Pycharm 直接下载Pyinstaller,以及使用问题解决

    用Pycharm 直接下载Pyinstaller,以及使用问题解决作为一个学语言学着玩的人,肯定很想把自己的学py文件打包发给别人,Pyinstaller包满足你。因为我一般下载包都是通过Pycharm下载的,有两个方法:一:在Pycharm中你输入:importPyinstaller#会报错只需要按住alt+回车下面就会出现是否安转此包,再回车一下等待就会自动安转完成;二:在Pycharm左上角的File->Setti…

    2022年8月26日
    12
  • AIC(最小信息化准则)

    AIC(最小信息化准则)AIC信息准则(即Akaikeinformationcriterion),是用来衡量统计模型拟合优良性的一个标准,是是由日本统计学家赤池弘次创立和发展的,因此也称为赤池信息量准则,它建立在熵的概念基础上,可以权衡所估计模型的复杂度和模型拟合数据的优良性。在一般情况下,AIC可以表示为:AIC=2k-2ln(L)其中:k是参数的数量,L是似然函数。假设条件是模型的误差服从独立正态分布。让n为观察…

    2022年5月22日
    71

发表回复

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

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