gpt4 book ai didi

docker - 在 Docker 内运行的 Nginx 状态端点

转载 作者:行者123 更新时间:2023-12-02 11:07:02 26 4
gpt4 key购买 nike

我是 Nginx 新手,我在 Docker 容器中运行它来为一个简单的网站提供服务。我想添加一个 /health 端点,它只返回状态 200 + 一些任意内容。

我通过添加

/etc/nginx/ 复制并调整了标准 nginx.conf
server {
location /health {
return 200 "alive";
}
}

位于 http block 内的底部。但是当我运行 Docker 并尝试访问 localhost/health 时,我只是得到“没有这样的文件或目录”。访问 localhost 网站工作正常。

我还尝试复制其他代码块,例如:https://gist.github.com/dhrrgn/8650077但后来我得到conflicting server name ""on 0.0.0.0:80,ignored nginx: [warn]conflicting server name ""on 0.0.0.0:80,ignored

我是否将 location 放置在 nginx.conf 内的错误位置?我需要一些特殊的服务器配置吗?有什么问题吗?

最佳答案

问题出在我的 Nginx Docker 设置/配置上:我使用的是 nginx:alpine,它的配置文件位于 /etc/nginx/conf.d/ 。其中,default.conf 定义了 Nginx 的默认配置。因此,我必须删除 default.conf 并将我的配置复制到那里。在Dockerfile中:

COPY nginx.conf /etc/nginx/conf.d/nginx.conf
RUN rm /etc/nginx/conf.d/default.conf

当然,我还必须在 nginx.conf 中定义标准路由:

server {
location / {
root /usr/share/nginx/html;
}

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

关于docker - 在 Docker 内运行的 Nginx 状态端点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50295614/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com