当前位置: 首页 > 知识库问答 >
问题:

nginx 代理 location不同的前缀校验不同的文件格式,怎么配置?

云弘壮
2023-10-13
server {        listen 9023;        server_name localhost;                         # location ~* "\.(xlsx|png|doc|docx|pdf|xls|rar|zip|jpg|jpeg|bmp)$" {                    #    rewrite ^/.(xlsx|png|doc|docx|pdf|xls|rar|zip|jpg|jpeg|bmp)$ /$1 break;                                            #    proxy_pass  http://192.168.3.14:9090;               # }    }

我期望 以location test1 开始的请求验证后缀为png格式,test2开始的请求不验证格式,怎么配置这个location呢?

共有2个答案

谭兴学
2023-10-13
server {    listen 9023;    server_name localhost;    location /test1/ {        if ($request_uri ~* \.png$) {            proxy_pass http://192.168.3.14:9090;        }        return 403;    }    location /test2/ {        proxy_pass http://192.168.3.14:9090;    }}
南宫凯康
2023-10-13

根据你的需求,你需要使用正则表达式来匹配不同的后缀,然后进行不同的配置。下面是一种可能的配置方式:

server {    listen 9023;    server_name localhost;    location ~* ^/test1(/\.(png))$ {        # 对以/test1开始,并且后缀为png的请求进行验证        # $1表示正则表达式中的第一个括号内的内容,即文件后缀        # $2表示正则表达式中的第二个括号内的内容,即文件名(不包括后缀)        # 我们在这里添加你需要的配置,例如代理到某个服务器或者其他处理方式    }    location ~* ^/test2(/\.(xlsx|png|doc|docx|pdf|xls|rar|zip|jpg|jpeg|bmp))$ {        # 对以/test2开始,并且后缀为xlsx、png、doc、docx、pdf、xls、rar、zip、jpg、jpeg、bmp中的任意一种的请求不进行验证        # 你可以根据需要在这里添加其他的配置,例如代理到某个服务器或者其他处理方式    }}

在上面的配置中,正则表达式 ^/test1(/\.(png))$ 会匹配所有以 /test1/ 开头,并且后缀为 png 的请求。正则表达式 ^/test2(/\.(xlsx|png|doc|docx|pdf|xls|rar|zip|jpg|jpeg|bmp))$ 会匹配所有以 /test2/ 开头,并且后缀为 xlsxpngdocdocxpdfxlsrarzipjpgjpegbmp 中的任意一种的请求。

你可以在每个 location 中添加你需要的配置,例如使用 proxy_pass 进行代理,或者使用其他指令进行特定的处理。

 类似资料:
  • 目前我们看到的输入文件都只包含一种语言,但在实际应用中我们会遇到有些包含多种语言的常用文件格式。例如,Java的文档注释,XML文件等。这些环绕着模板表达式的文本需要不同的处理方式,它们被称为孤岛语言。 ANTLR有提供一个称之为“词法模型”的词法分析器特性,它让我们可以很容易地处理包含混合格式的文件。基本思路是:当词法分析器看到特殊的哨兵字符序列时,让它在模式之间来回切换。 XML是一个很好例子

  • 问题内容: 我正在使用不同的Maven配置文件将我的应用程序部署到不同的环境。(使用weblogic-maven-plugin,但是我认为这并不重要) 在应用程序中,我使用Spring Web Services。现在,我想根据环境更改端点。(端点在Spring的applicationContext.xml中定义) 我的想法是从属性文件中读取值。该属性文件将在Mavens软件包阶段写入(或复制)。

  • 对于一些人来说,这可能是一个非常简单的问题,但就我个人而言,Log4j配置非常困难,学习执行脑部手术可能没有那么困难。 我正试图让多个日志记录者登录到不同的文件。这是我的log4j中的内容。属性文件: 这是我的(非常简单的)Java应用程序用于测试配置: 我有两个问题: 有一个问题,我总是在

  • 本文向大家介绍nginx反向代理配置去除前缀,包括了nginx反向代理配置去除前缀的使用技巧和注意事项,需要的朋友参考一下 使用nginx做反向代理的时候,可以简单的直接把请求原封不动的转发给下一个服务。设置proxy_pass请求只会替换域名,如果要根据不同的url后缀来访问不同的服务,则需要通过如下方法: 方法一:加"/" ^~/user/表示匹配前缀是user的请求,proxy_pass的结

  • 我试图将paralleStream与自定义的ForkJoin池一起使用,该任务执行网络调用。当我使用以下样式时 如果使用parallelStream,那么ForkJoinPool.Common是否以某种方式参与其中?下面是模拟上述两种样式的整个程序

  • 我的要求是为不同格式的文件(PSV和CSV)轮询两个不同的目录,并使用Spring批处理它。 我使用入站通道适配器轮询目录。但是,我无法找到一种方法来根据文件类型调用相应的阅读器及其标记器和字段映射器。 例如,如果它是psv-调用PSV阅读器,如果它是csv-调用CSVReader,CSV线路映射器 任何帮助都将不胜感激。 谢谢