【问题标题】:Modify $uri in a nginx.conf在 nginx.conf 中修改 $uri
【发布时间】:2022-01-26 20:09:56
【问题描述】:

在我的网络应用程序中,我让用户上传他们的头像,然后应用程序在后台调整它们的大小。这意味着用户(或在调整大小期间看到个人资料的任何用户)将看到损坏的头像,因为它尚未调整大小。

在我的应用程序中轻松解决此问题的一种方法是,如果调整大小的图像尚不存在,请让 nginx 渲染原始图像。

我正在考虑在我的 nginx.conf 中添加类似 try_files $uri $original_uri =404; 的行,但我不知道如何创建 $original_uri 变量。

$uri 可能看起来像“users/42/thumb_avatar.jpg”,我需要将其转换为“users/42/avatar.jpg”。

所以我的问题是:有没有办法应用正则表达式或类似的东西来修改 nginx.conf 中的变量?

【问题讨论】:

    标签: nginx nginx-config


    【解决方案1】:

    也就是说,您需要去除请求的 URI 中存在的 thumb_ 前缀?使用map 块(应放在http 上下文中server 块之外):

    map $uri $original_uri {
        ~^(.*/)thumb_([^/]+)$  $1$2;
    }
    server {
        ...
    }
    

    默认值(如果不匹配正则表达式模式)将为空字符串,这对于 try_files 指令是可以的。

    【讨论】:

    • 完美运行 :) 谢谢!
    猜你喜欢
    • 2023-04-02
    • 1970-01-01
    • 2019-07-23
    • 1970-01-01
    • 2020-02-22
    • 2017-08-22
    • 2023-03-05
    • 2017-03-28
    • 2017-03-31
    相关资源
    最近更新 更多