在nginx配置文件中,如何定义一个包含“$”符号的fastcgi_param?

kan*_*312 5 configuration nginx fastcgi environment-variables escaping

我正在尝试为 PHP 应用程序定义一些环境变量,但其中一个变量包含“$”符号。当我使用 测试配置文件时nginx -t,我收到一条错误消息,告诉我变量不存在。好像把“$”后面的文字解释为变量名,当然没有定义。

也许我没有在正确的地方搜索,但我找不到有关如何转义“$”字符的信息。这可能吗?怎么做?

更新:我尝试在 d3ag0s 的评论之后将值括在单引号和双引号之间,但我收到了相同的错误消息。

kan*_*312 5

根据此页面,无法转义 $ 符号,但它们提供了一种解决方法:

https://openresty.org/download/agentzh-nginx-tutorials-en.html#nginx-variables-escaping-dollar

geo $dollar {
    default "$";
}

server {
    listen 8080;

    location /test {
        echo "This is a dollar sign: $dollar";
    }
}
Run Code Online (Sandbox Code Playgroud)

虽然它可能不是最好的解决方案,但我已经对其进行了测试并且它有效。