如何在维护模式下使用 Nginx 提供静态资产(503)[重复]

2024-02-21

我在我的网站服务器上使用 Nginx 作为前端代理。 我想用它来将用户重定向到我的 Web 应用程序(当它处于活动状态时)或当我处于维护模式时将用户重定向到维护 php 页面。

这是我的服务器指令:

server {
    listen               443;

    return 503;
    error_page           503 @maintenance;
    root                /usr/maintenance;
    location @maintenance {
        fastcgi_pass     php-fpm;
        fastcgi_index    index.php;
        fastcgi_param    SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include          /etc/nginx/fastcgi_params;
    }

    location / {
        proxy_pass       https://webapp;
    }
}

如果我取消注释return 503,将 503 响应发送到客户端,否则发送 Web 应用程序。

我的 PHP 503 错误页面按预期显示,但问题是它有静态资源(css、图像、js),当 Chrome 尝试加载它们时,我收到 503 返回代码。资产位于根目录中。

我怎样才能解决这个问题 ? 有没有比评论/取消评论更好的方法return 503处理维护和实时模式?

谢谢


经过一番研究,我找到了一种优雅的方法。 来源 :http://blog.mythictechnologies.com/2011/02/10/setting-a-maintenance-page-with-nginx/ http://blog.mythictechnologies.com/2011/02/10/setting-a-maintenance-page-with-nginx/

这是我的新配置

server {
    listen               443;

    error_page           503 @maintenance;
    root                /usr/maintenance;
    location @maintenance {
        fastcgi_pass     php-fpm;
        fastcgi_index    index.php;
        fastcgi_param    SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include          /etc/nginx/fastcgi_params;
    }

    location ~* \.(css|png|js|jpg|jpeg) {
        # The file will be returned
    }

    location / {
        return           503;
        proxy_pass       https://webapp;
    }
}

您可以自由调整正则表达式\.(css|png|js|jpg|jpeg)如您所愿,但将文件列入白名单似乎是个好主意。

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

如何在维护模式下使用 Nginx 提供静态资产(503)[重复] 的相关文章

随机推荐

  • 无法执行fabric8 docker插件

    运行 mvn clean install 会出现此错误 Windows 错误 无法在项目集成测试上执行目标 io fabric8 docker maven plugin 0 20 1 start prepare environment 执行
  • Python 线程锁在简单示例中不起作用

    我一定在这里遗漏了一些东西 但是这个两个线程尝试修改函数中的全局变量的简单示例没有给出预期的结果 from threading import Thread Lock some var 0 def some func id lo Lock w
  • 如果每个点的每个坐标都是有理数,则凸包的时间复杂度为 O(n)

    证明凸包为n平面上的点可以计算为O n 如果每个点的每个坐标都是 p q 形式的有理数 并且 p 和 q 有界值 则时间 Note 这是一个家庭作业问题 我只能想到通过某种方式避免扫描所有点来使用贾维斯 马奇 也许这可以通过向固定方向投射光
  • 来自数组或列表的 MS Charts C# 数据源

    我想从二维数组中的值填充图表的数据 一列将显示 X 轴 第二列将显示 Y 轴 我做到了 但它不是从数组中读取 它给出当我运行应用程序时 我使用默认行 我找到了使用 List 的解决方案 我遇到了错误 所以如果有人可以帮助我 我将不胜感激 D
  • 我应该将静态文件放在 Jekyll 中的哪个文件夹中?

    当我在看医生时 我看到了以下文档结构 config yml drafts begin with the crazy ideas textile on simplicity in technology markdown includes fo
  • 为什么不能通过“数据执行预防”来修复 Javascript shellcode 漏洞?

    The 堆喷 http en wikipedia org wiki Heap spraying JavaScript维基百科文章表明 许多 javascript 漏洞利用涉及将 shellcode 放置在脚本的可执行代码或数据空间内存中的某
  • RecyclerView 模糊 setVisibility 函数,点击一个视图影响多个视图

    这是项目 https github com kiddBubu RecyclerViewDemo我正在努力奔跑 这是我来自 RecyclerView Adapter 类的 onBindViewHolder 的代码 Override publi
  • 服务器返回 HTTP 响应代码:URL 为 500 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 java io IOException Server returned HTTP response code 500 for URL ht
  • Django admin:缺少某些记录的内联

    我在 django 管理站点和内联方面遇到一些问题 我已经用谷歌搜索解决方案两天了 但一无所获 我有两个模型 class Measurement models Model user models ForeignKey User date m
  • 在 Android 游戏中保存高分 - 共享首选项

    最近我正在开发一个简单的android游戏 对于评分部分 我在许多网站上都提到共享偏好最能保存高分 现在 如果我需要保存游戏中不同关卡的高分该怎么办 我希望保存每个级别的前三名得分手的得分 要保存您的分数 您可以执行以下操作 prepare
  • 直接写入 std::string 内部缓冲区

    我正在寻找一种跨 DLL 边界将一些数据填充到字符串中的方法 因为我们使用不同的编译器 所以我们所有的dll接口都是简单的char 是否有正确的方法将指针传递到 dll 函数中 以便它能够直接填充字符串缓冲区 string stringTo
  • 我应该使用什么技术来编写游戏? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Google Player 游戏服务错误:无法构建示例游戏

    我无法构建示例游戏TypeANumberChallenge由 Google 提供 参见GitHub https github com playgameservices android basic samples tree master Ba
  • 从指定的屏幕区域创建位图

    我正在尝试从屏幕上的特定区域创建位图 例如 在下图中 我如何捕获下面的窗口区域并将其转换为位图 我知道您可以使用 setDrawingCacheEnabled true 但是当我想要的只是视图中的一个区域时 它会捕获整个视图 其实你可以用A
  • RStudio 演示文稿/slidify/pandoc 中的两列布局

    我正在尝试想出一个好的系统来生成幻灯片和随附的讲义 理想的系统将具有以下属性 演示文稿 PDF HTML 和讲义 PDF 布局都很漂亮 讲义应该有做笔记的空间 嵌入 R 块 图形 其他 JPG PNG 图片等 易于创作 使用命令行工具构建
  • 如何声明一个字节ArrayList

    我正在尝试做 var mahByteArray new ArrayList
  • 如何更改CUDA版本

    我在编译修改后的caffe版本时遇到了这个错误 OpenCV static library was compiled with CUDA 7 5 support Please use the same version or rebuild
  • 自由格式代码可以包含在固定格式代码中吗?

    我继承了一个固定格式文件 FFTRUN f 该文件的开头如下所示 SUBROUTINE FFTRUN 2e USE intrinsic ISO C BINDING USE FFTWmod ONLY FFTWplan fwd FFTWplan
  • 发布到 IIS 后启用 CORS 不起作用

    我将 dotnet core 2 2 Web api 应用程序托管到本地 IIS 当我运行托管网站时 网站正在运行 我正在尝试从角度登录 但它不起作用 It says 从源 http localhost 4200 访问位于 http 192
  • 如何在维护模式下使用 Nginx 提供静态资产(503)[重复]

    这个问题在这里已经有答案了 我在我的网站服务器上使用 Nginx 作为前端代理 我想用它来将用户重定向到我的 Web 应用程序 当它处于活动状态时 或当我处于维护模式时将用户重定向到维护 php 页面 这是我的服务器指令 server li