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

9rygscc1  于 2023-11-17  发布在  Nginx
关注(0)|答案(1)|浏览(185)

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

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

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

  1. server {
  2. error_page 404 /error-pages/404.html
  3. }


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

bf1o4zei

bf1o4zei1#

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

  1. location /error-handler {
  2. content_by_lua_block {
  3. local var_value = os.getenv('YOUR_ENV_VAR')
  4. if var_value == 'some_condition' then
  5. ngx.exec('/error-pages/404.html')
  6. else
  7. ngx.exec('/error-pages/404-2.html')
  8. end
  9. }
  10. }
  11. error_page 404 /error-handler;
  12. }

字符串

相关问题