【问题标题】:invalid_referer syntax for if in nginxnginx中if的invalid_referer语法
【发布时间】:2019-02-28 19:45:09
【问题描述】:

我在我的 nginx.conf 中使用它,其中 ${WWW_URL} 与我的网络应用程序 url 不同

location ~* \.(jpg|png)$ {
    valid_referers none blocked www.${WWW_URL} ${WWW_URL};

    if ($invalid_referer) { # line 63
        return 403;
    }
}

但是当我启动 nginx 时,我得到了

[emerg] /etc/nginx/nginx.conf:63 中的无效条件“)”

我尝试更改缩进,删除空格...这个 if 语句有什么问题?

谢谢

【问题讨论】:

  • 假设valid_referrers接受变量,包含{}的字符串可能需要用单引号或双引号括起来。
  • 我使用envsubst 将我的变量替换为环境变量。如果我硬编码我的网址,我会遇到同样的问题

标签: nginx referer nginx-config


【解决方案1】:

envsubst 可能正在从if ($invalid_referer) { 中删除$invalid_referer

nginx: [emerg] invalid condition ")" in /etc/nginx...if 条件中的空括号返回的错误

【讨论】:

  • 在我的 docker-compose 中,我明确给出了 var /bin/bash -c "envsubst $$WWW_URL < /etc/nginx/mysite.template > /etc/nginx/nginx.conf && exec nginx -g 'daemon off;'"
猜你喜欢
  • 2015-12-25
  • 1970-01-01
  • 1970-01-01
  • 2022-01-23
  • 2011-12-01
  • 2018-10-30
  • 1970-01-01
  • 1970-01-01
  • 2017-11-15
相关资源
最近更新 更多