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)
上一篇 2026年4月13日 下午5:10
下一篇 2026年4月13日 下午5:16


相关推荐

  • Android UI布局优化之ViewStub[通俗易懂]

    Android UI布局优化之ViewStub[通俗易懂]尊重原创,转载请注明出处:http://blog.csdn.net/a740169405/article/details/50351013前言:在设计模式的单利模式中,懒汉式和饿汉式是其中两种。一种是在类被加载的时候就完成单例对象的初始化,一种是在需要使用该单例的时候才初始化。在android的视图设计中,同样需要使用的这样的设计模式。这样的视图加载起来需要耗费很多的时间。在这几…

    2022年6月28日
    36
  • 无锁编程实例

    无锁编程实例最近在研究nginx的自旋锁的时候,又见到了GCCCAS原子操作,于是决定动手分析下CAS实现的无锁到底性能如何,网上关于CAS实现无锁的文章很多,但少有研究这种无锁的性能提升的文章,这里就以实验结果和我自己的理解逐步展开。1.什么是CAS原子操作在研究无锁之前,我们需要首先了解一下CAS原子操作——Compare&Set,或是Compare&Swap,现在

    2022年6月3日
    33
  • linux安装p12,用命令行安装mobileprovision和p12证书

    linux安装p12,用命令行安装mobileprovision和p12证书我这边使用python来编写的,基本达到了最大化程度的解耦,其他人或者其他地方都可以直接使用。先创建installMobileProfile.py#!/usr/bin/python#-*-coding:UTF-8-*-importsysimportcommandsimportosparamsCount=len(sys.argv)if(paramsCount!=5):prin…

    2022年6月22日
    55
  • 解决IBasicVideo::GetCurrentImage返回0x8000ffff(E_UNEXPECTED Catastrophic failure)错误

    解决IBasicVideo::GetCurrentImage返回0x8000ffff(E_UNEXPECTED Catastrophic failure)错误经过查阅一番资料后,得到如下的解决方案:方案1:使用替代的接口ISampleGrabber,代替IBasicVideo,具体调用的函数为:ISampleGrabber::GetCurrentBuffer.可以参考文章:dshow中使用SampleGrabberfilter抓取图像。在我的开发环境win10+vs2013下没能找到ISampleGrabber接口;而在官方文档中提到ISa…

    2026年3月4日
    3
  • 2019latex安装教程

    2019latex安装教程菜鸡一枚,一开始装latex找了好多博客,按照他们的步骤走还是失败,最后把他们集齐,拼在了一起,终于召唤出了latex!!!参考博客链接:安装教程环境变量教程安装教程环境变量教程其实还找了许多,但是最上面的四个教程是最有用的(对我来说)首先去这个链接下latex官网具体操作步骤看这个安装教程,他写的很好很详细,在按照步骤装好texlive后,先别急!,要更改环境变量(我是需要的…

    2022年6月9日
    52
  • treeTable实现排序

    treeTable实现排序/***TreeTable0.1-Client-sideTreeTableViewer!*@requiresjQueryv1.3**DuallicensedundertheMITandGPLlicenses:*http://www.opensource.org/licenses/mit-license.php…

    2022年5月11日
    37

发表回复

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

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