Nginx 502 提供错误页面内容时?

2024-01-09

我一直在将 Nginx 设置为服务器上应用程序的反向代理。其中一部分包括具有外部内容(如图像)的维护页面。我找到了一种设置图像返回 200 的错误页面的方法,但看起来反向代理会改变整个环境。这是来自的原始解决方案nginx 维护页面有内容问题 https://stackoverflow.com/questions/5984270/nginx-maintenance-page-with-content-issue

error_page 503 @maintenance;

location @maintenance {
    root /path_to_static_root;
    if (!-f $request_filename) {
        rewrite ^(.*)$ /rest_of_path/maintenance.html break;
    }
    return 200;
}

反向代理配置为:

location / {
            proxy_pass         http://127.0.0.1:9007/;
            proxy_redirect     off;
}

问题问题是,当发现“维护”根目录中存在文件时,就会出现问题,服务器返回 502。有人知道原因可能是什么吗?

一些猜测我想知道服务器是否侦听端口 80,它会以某种方式将任何好的文件请求传递回代理。如果这是真的,如何避免这种情况?

Edit

这是 nginx 日志中的错误。我直接尝试访问 50x.html。不确定为什么会发生这种情况?

2012/02/17 19:39:15 [error] 21394#0: *13 connect() failed (111: Connection refused) while connecting to upstream, client: (my ip address), server: _, request: "GET /50x.html HTTP/1.1", upstream: "http://127.0.0.1:9007/50x.html", host: "domain.com"

看起来确实是这样indeed尝试从应用程序而不是根获取。我怎样才能绕过这个?

Edit 2

我原本以为我已经找到了对 nginx v1.0.12 进行更改的答案,但它并没有解决问题。它涉及类似的情况,但我的猜测是修复过于具体。


你不需要涉及后端(即,不应该使用代理通行证),因为你的维护页面应该是 Nginx 可以直接提供服务的静态 html 文件。

假设您的设置配置为...

server {
    listen 80;
    server_name example.com;
    root /path/to/webroot;


    # Regular locations etc
    ...
}

创建一个名为“503_status”的文件夹,并将维护页面作为“503.html”放入其中。

完成后,在 Nginx 目录下创建一个名为“maintenance.default”的文件,其中包含以下内容...

error_page 503 /503_status/503.html;

# Candidate for redirection if not ending with one of these extensions.
if ( $request_uri !~ \.(jpg|gif|png|css|js)$ ) {
     set $maint  "Tr";
}
# Candidate for redirection if not a request for the maintenance page 
if ( $request_uri !~ ^/maintenance/$ ) {
    set $maint  "${maint}ue";
}
# Redirect to a location where the status code will be issued 
if ( $maint = True ) {
    rewrite ^ /maintenance/ redirect;
}
# Due to Nginx quirk, issue the status code in a location context.
# Make "internal" to prevent direct browsing.
location /maintenance {
    internal;
    return 503;
}
# 503_status folder as "internal" so no direct browsing 
location 503_status {
    internal;
    alias /server/path/to/503_status/folder;
}

每当您将站点投入维护时,只需包含以下文件......

server {
    listen 80;
    server_name example.com;
    root /path/to/webroot;

    include /server/path/to/maintenance.default;        

    # Regular locations etc
    ...
}

这将为您的维护页面及其所需的任何资源提供服务(只需确保扩展名在列表中)。后端服务器根本不发挥作用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Nginx 502 提供错误页面内容时? 的相关文章

  • 站点启用/中不允许使用 nginx“mail”和“stream”指令

    当我尝试在 nginx 中使用流或邮件指令时遇到问题 我正在使用 nginx 1 16 1 和 Ubuntu 18 04 4 LTS 这是我的 nginx conf user www data worker processes auto p
  • 从 Nginx 到 Express.js 上的 socket.io 的反向代理上“无法获取”

    我已经关注了通过私有网络让 Node js 在两台 Ubuntu 14 04 服务器上通过 Nginx 工作 Node js 位于 myappserver 上 通过私有 IP myprivatewebserver 访问 并通过 mypubl
  • 为什么在生产中得到空 CSS 文件?

    我在文件中放入了很多css文件active admin css scss Active Admin s got SASS import active admin mixins import active admin base import
  • Docker 与 nginx 组合不断显示欢迎页面

    我是新来的docker并尝试使用最简单的 docker compose yml 显示一个 hello world 页面 并在此基础上构建最终完整的LEMP堆栈它将与我的服务器具有相同的配置 然而大多数教程已经过时 并且有很多使用方法dock
  • 比较 nginx+Apache+mod_wsgi 与 nginx+uWSGI?

    在生产中使用 nginx Apache mod wsgi 与 nginx uWSGI vurtualenv 有何优缺点 我在自 2007 年以来开发的 mod wsgi 中看到了第一个变体的优点 并且具有更稳定的版本和易于管理 第二种变体的
  • 通过 nginx 入口控制器进行基本身份验证

    我正在使用 nginx 入口控制器 https kubernetes github io ingress nginx deploy https kubernetes github io ingress nginx deploy 在 AWS
  • Kong - 验证上游 ssl(ssl_proxy 打开)

    我已经成功为 API 安装了 kong 网关 该 API 通过上游负载平衡到多个目标 应用程序服务器 现在 我有一个我的应用程序服务器的自签名证书 kong 和目标之间的 ssl 握手应该失败 我推断 kong 不验证上游证书 经过一些研究
  • Node + Express + Nginx 未设置 Cookie

    我有一个使用 Express 的 Node 应用程序 我尝试为我的客户端设置 cookie 它在本地环境 http 上运行良好 但是一旦我投入生产 https 我就很好地收到了cookie 我可以在响应中看到它 但它没有设置 任何想法 Ng
  • nginx - 记录 SSL 握手失败

    我正在运行启用了 SSL 的 nginx 服务器 我的协议 密码设置相当安全 我已经在 ssllabs com 上检查过它们 但是 因为这是一个由我无法控制的 http 客户端调用的 Web 服务 所以我担心兼容性 重点是 有没有办法在我的
  • Nginx 背后的多个 Meteor 站点

    这个问题与this https stackoverflow com questions 10936242 how can i correct the meteor base url in a nginx reverse proxy conf
  • 如果我在不打算升级到 websocket 连接的 HTTP 请求中包含“Upgrade”和“Connection”标头,会发生什么情况?

    我有一个 Nginx 服务器块 用于代理对 node js 服务器的请求 该服务器同时提供 HTTP 内容和 WS websocket 内容 是否可以在不应升级到 Websocket 连接的请求上添加升级标头 即使用 Nginx 代理到服务
  • 我怎样才能重写这个nginx“if”语句?

    例如 我想这样做 if http user agent MSIE 6 0 http user agent MSIE 7 0 etc etc rewrite ROOT ROOT ancient last break 而不是这个 if http
  • kubernetes 集群中 django 应用程序的 Nginx 配置

    我在为部署在 kubernetes 中的 django 应用程序创建 nginx 配置文件时遇到困难 Nginx 和 app 是同一集群中的两个独立容器 据我了解 容器可以通过 127 0 0 1 XX 和主机名相互通信 我为此使用 min
  • Nginx 中 uwsgi_pass 和 proxy_pass 的区别?

    我在 Nginx 后面运行 uWSGI 并一直在使用proxy pass让 Nginx 访问 uWSGI 切换到有什么好处吗uwsgi pass 如果是这样 那是什么 uwsgi pass使用一个uwsgi协议 proxy pass使用普通
  • 错误:从上游读取响应标头时上游过早关闭连接 [uWSGI/Django/NGINX]

    我目前在用户正在进行的查询中总是得到 502 它通常返回 872 行 在 MySQL 中运行需要 2 07 然而 它返回了大量信息 每一行包含很多东西 有任何想法吗 运行 Django tastypie Rest API Nginx 和 u
  • NGINX hashbang 重写

    我想知道 hashbang url 的位置或重写 nginx 指令会是什么样子 基本上像前端控制器一样通过 hashbang 路由所有非 hashbanged url 所以 http example com about staff 将路由至
  • nginx位置正则表达式,匹配多次

    如何在 nginx 位置正则表达式中多次匹配 看来 x x 语法永远不起作用 例如 location abc w 1 3 从来不工作 您必须引用包含以下内容的位置 or 人物 location abc w 1 3 否则 nginx 将其解析
  • Rails/Nginx 中的超时——最佳实践

    我正在开发一个应该在 Nginx 服务器上运行的 Rails 应用程序 根据输入 应用程序可能需要很长时间来处理请求 或者在出现错误时挂起 因此我想防止进程永远运行 除了确保客户端收到超时信号的 Nginx 配置之外 我想我可能仍然需要确保
  • PHP cURL 在本地工作,在 AWS 服务器上出现错误 77

    最新更新 脚本作为管理员用户通过 SSH shell 作为 php script php 成功运行 当由 nginx 用户运行时 curl 命令无法执行 https 请求 所以我猜测这是nginx用户无法正确使用curl的问题 我已经检查了
  • Nginx url 限制 502 网关

    我有一个问题 但我接受绕过此功能的其他建议 基本上 我在 get 请求中向我的服务器发送大约 3000 个字符的大行文本 然后服务器将其作为 url 中的参数发送到谷歌翻译 问题 当 url gt 1900 个字符时 Nginx 会抛出 5

随机推荐

  • IE只读文本区域问题

    当我动态更改其 只读 属性时 我在 IE7 和 IE8 但不是其他浏览器 中看到文本区域存在问题 文本区域最初被定义为只读 当用户在文本框内单击时 我将 readOnly 设置为 false 此时 如果我输入任何普通字符 它们不会显示 事实
  • TensorflowAssign 要求两个张量的形状匹配。左侧形状= [20] 右侧形状= [48]

    我是 TensorFlow 菜鸟 我已经通过 Deeppose 的开源实现训练了一个 TensorFlow 模型 现在必须针对一组新图像运行该模型 该模型接受了大小图像的训练100 100所以我将新的图像集调整为相同的大小 我有149用于运
  • npm 不支持 Node.js

    npm 不支持 Node js v15 5 0 和 v14 15 3 npm 版本 5 6 0 我是通过命令升级的 npm i g npm upgrade但我没有得到版本 6 我总是得到版本 5 6 0 我还根据以下内容尝试了不同的 Nod
  • R data.table 奇怪的值/引用语义

    这是一个后续问题this https stackoverflow com questions 62740267 is r data table documented to pass by reference as argument 检查这个
  • 我的应用因无效原因被 Instagram Basic Display API 审核拒绝

    我正在开发一个应用程序 允许用户在我的应用程序中连接他们的 Instagram 个人资料 因此 我的应用程序中的其他连接用户可以访问他们的 Instagram 个人资料 这类似于Tinder已经在他们的应用程序中实现了 参考这个链接 htt
  • 如何通过GLSL在THREE.js中实现MeshNormalMaterial?

    我想实现一个像这样的着色器网格法线材质 https threejs org docs api materials MeshNormalMaterial 但我不知道如何将法线转换为颜色 在 THREE js 中 我的测试1 varying v
  • 隐式转换,是否需要导入?

    I write object MyString implicit def stringToMyString s String new MyString s class MyString str String def camelize str
  • 如何在 C# 3.0 中比较两个通用列表? [复制]

    这个问题在这里已经有答案了 可能的重复 C 中有比较集合的内置方法吗 https stackoverflow com questions 43500 is there a built in method to compare collect
  • ExecJS::ProgramError:意外的标记:名称(选项)

    我的应用程序在本地环境中运行良好 我试图git pushHeroku 的构建 我的命令是 bundle install git add git commit am abcdef git push heroku master 然后我遇到了资产
  • 将 pandas DataFrame 写入 sql 时出现无效列名错误

    当我尝试将数据帧写入 ms sql server 时 如下所示 cnxn sqlalchemy create engine mssql pyodbc HOST PORT DATABASE driver SQL Server df to sq
  • 尽管未兑现的承诺,脚本还是结束了

    考虑一下 async function const arr await new Promise r gt arr push r console log done 脚本终止于await并且日志从未打印到标准输出 我不明白为什么 你的代码没有任
  • 从 F# 中特定位置的二进制文件读取整数的性能问题

    今天早上我问here https stackoverflow com questions 24381090 performance issue with reading integers from a binary file at spec
  • 运行“gem install Rails”时出错

    我的配置 操作系统 Ubuntu 12 04 rvm版本 14 25 红宝石版本 2 1 0p0 宝石版本 2 2 1 哪个红宝石 home tauhidul35 rvm rubies ruby 2 1 0 bin ruby 哪个 RVM
  • 如何使用 DocX 控制 Word 文档中的表格列宽?

    我正在尝试重新创建一个这样的表 我正在使用 DocX 库来操作 Word 文件 但在获取正确的宽度时遇到问题 尝试设置单元格的宽度似乎仅在未设置为窗口自动调整模式时才起作用 并且仅当指定宽度大于表格宽度的一半时才似乎调整大小 或者更确切地说
  • 如何保存音调改变后录制的音频?

    我正在努力录制声音 然后更改音频的音调并保存 我在录制语音后调用此方法 然后单击按钮更改音调 然后也会创建新文件 但无法收听音频 生成的音频没有语音 可能是什么错误 void saveEffectedAudioToFolder NSErro
  • setImageBitmap没有可见效果

    我有一个字节数组 其中包含从网络获取的图像 我使用 Bitmapfactory BitmapDrawable 和 setImageDrawable 将它们懒惰地加载到我的 UI 活动中 或者我至少尝试这样做 D 这是我的代码 Relativ
  • 将 2D 数组转换为 std::map?

    数组可以转换为std vector轻松高效 template
  • Linq 按布尔值排序

    我有一个 linq 查询 我想通过 f bar 它是一个字符串 排序 但我也想首先通过 f foo 它是一个布尔字段 排序 就像下面的查询一样 from f in foo orderby f foo f bar select f 虽然可以编
  • GTK:如何在开始时从元素上移除焦点

    我向应用程序添加了两个 GtkEntry 现在当我启动应用程序时 其中一个具有焦点 并且看起来已准备好进行编辑 不希望在开始时将焦点放在任何元素上 也不希望任何文本输入元素具有焦点或正在编辑 我只是想让他们显示他们的文本 然后如果用户想要更
  • Nginx 502 提供错误页面内容时?

    我一直在将 Nginx 设置为服务器上应用程序的反向代理 其中一部分包括具有外部内容 如图像 的维护页面 我找到了一种设置图像返回 200 的错误页面的方法 但看起来反向代理会改变整个环境 这是来自的原始解决方案nginx 维护页面有内容问