nginx:如何根据环境变量定义404错误页面

9rygscc1  于 12个月前  发布在  Nginx
关注(0)|答案(1)|浏览(134)

我使用os.getenv()检索lua块要使用的环境变量
例如

set_by_lua_block $csp_header {
      local frameSrc = "frame-src 'self' '*.mywebsite.com'" .. (os.getenv("EXTRA_FRAME_SRC") or "")
}

字符串
当我的应用程序被部署时,一切都按预期工作。
然而,我想根据环境变量有条件地读取不同的404页面。换句话说,我想根据os.getenv('condition')选择不同的error_page 404位置。
类似于if(os.getenv(var)return/error-pages/404-2.html,else return error-pages/404-2.html)

server {
  error_page   404    /error-pages/404.html
}


有人能解释一下如何使用lua来实现这一点吗?

bf1o4zei

bf1o4zei1#

您可以定义一个特殊的错误处理程序位置,将请求路由到相应的错误页:

location /error-handler {
        content_by_lua_block {
            local var_value = os.getenv('YOUR_ENV_VAR')
            if var_value == 'some_condition' then
                ngx.exec('/error-pages/404.html')
            else
                ngx.exec('/error-pages/404-2.html')
            end
        }
    }

    error_page 404 /error-handler;
}

字符串

相关问题