【问题标题】:How to return no body / content for errors / error_page in nginx?如何在 nginx 中为错误/error_page 不返回正文/内容?
【发布时间】:2015-03-26 22:21:39
【问题描述】:

如果文件未找到或被禁止等——我真的很想只返回 HTTP 状态代码而不返回正文内容。 比如:

error_page 403 404 body="";

目前(2015 年)的最佳做法是什么?

【问题讨论】:

    标签: nginx http-status-code-404 http-status-code-403


    【解决方案1】:

    我不确定这是否是最佳做法,但即使没有创建实际的空文件,它仍然有效。

    error_page 403 404 /__empty-error-page__.html;
    
    location = /__empty-error-page__.html {
      internal;
      return 200 "";
    }
    

    【讨论】:

      【解决方案2】:

      我想出的最好办法是创建一个零字节文件:

      $ touch _.json

      在我的 nginx 配置中将该位置设置为内部位置,并将 error_page 指向它:

      location /_.json { internal; } error_page 403 404 /_.json;

      根据您的内容类型,将_.json 替换为您想要的_.mime-type-extension

      【讨论】:

        【解决方案3】:

        实际上,所有当前选项都暗示每个错误代码的位置,这不是一个干净的解决方案。当你编译你的nginx时,只需处理src/http/ngx_http_special_response.c中的bodys

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-04-15
          • 1970-01-01
          • 2014-12-19
          • 1970-01-01
          • 1970-01-01
          • 2021-11-18
          相关资源
          最近更新 更多