【问题标题】:Return a string using the Nginx container使用 Nginx 容器返回一个字符串
【发布时间】:2021-09-18 10:52:50
【问题描述】:

我正在使用 Nginx 容器在 Kubernetes 中托管一个 SPA 应用程序。

除了为 SPA 应用托管的静态文件之外,我还需要托管用于健康检查的路由。所以,路由/health/startup在收到GET请求时需要返回文本healthy

我想我可以创建一个名为“health”的文件夹,然后在其中放入一个名为 startup 的文件,其中包含文本 healthy。但这对我来说似乎有点奇怪。而且我担心如果文件结构可能发生变化,那么我的健康检查就会开始失败。

有没有办法,当请求到达特定路由时,使用 Nginx container 返回给定值(即“健康”)?(并且不会弄乱我的静态文件服务正在进行中。)

【问题讨论】:

    标签: nginx


    【解决方案1】:

    是的,您可以,在您为服务器导入的配置中,您可以这样做:

    location /health/startup {
        add_header Content-Type text/plain;
        return 200 'healthy';
    }
    

    【讨论】:

    • 这看起来很完美!但是,我不知道你指的配置文件在哪里。 (容器镜像只适用于放入/usr/share/nginx/html的静态文件。)你知道配置文件通常在哪里吗?
    • 它应该在/etc/nginx/conf.d/app.conf
    • 也来自您发布的链接,在Complex configuration 下我看到该位置可能是/etc/nginx/nginx.conf(也可能发生您需要一个围绕server { ... } 到我发布的剪断.. . 取决于您使用的版本)
    • 看起来/etc/nginx/nginx.conf 是“真实的”。但是,默认情况下,它在底部有这一行:include /etc/nginx/conf.d/*.conf; 这使得/etc/nginx/conf.d/default.conf 也被加载。这也意味着该文件夹中的任何.conf 文件都将被加载。 (来源:stackoverflow.com/a/22164038/16241)我将在该位置添加一个文件以进行健康检查。非常感谢您的帮助!
    • @Vaccano 从未对 Nginx 配置进行过如此深入的研究,这对我来说也是新的,希望它对 K8s 有效,祝你好运
    猜你喜欢
    • 1970-01-01
    • 2013-03-29
    • 1970-01-01
    • 2019-11-06
    • 2019-12-06
    • 1970-01-01
    • 1970-01-01
    • 2011-05-05
    • 2012-10-15
    相关资源
    最近更新 更多