【问题标题】:How do I turn sendfile off in a docker instance如何在 docker 实例中关闭 sendfile
【发布时间】:2015-09-04 17:06:56
【问题描述】:

我有一个 nginx docker 实例正在运行。在 docker 实例中有一个名为 /etc/nginx/nginx.conf

它有以下设置

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" 

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    ....
}

我通过运行以下命令来运行 docker 实例。

docker run -d -P -v /Users/user/site:/usr/share/nginx/html --name mysite nginx

我将如何运行上述命令但让它更改配置设置以关闭发送文件?

这个answer looks similar to mine。我需要创建一个构建文件吗?我有点困惑。

【问题讨论】:

标签: linux nginx configuration docker sendfile


【解决方案1】:

只需将您自己的配置文件注入为volume

假设您在 /tmp 中有一个 conf 文件,那么您可以使用以下命令运行容器:

docker run -d -P -v /tmp/my.conf:/etc/nginx/nginx.conf -v /Users/user/site:/usr/share/nginx/html --name mysite nginx

【讨论】:

    【解决方案2】:

    有很多选择:

    • 将 nginx.conf 放在一个卷中,这样您就可以为不同的容器加载不同的文件(如果没有传递挂载卷参数,则使用默认的)
    • 不是直接运行 nginx,而是一个 shell 脚本,用 sed 改变,然后加载 nginx(或者如果不需要改变直接加载 nginx)
    • 在加载 nginx 的 nginx.conf 或 bash 中,注意从 docker 命令行传递的环境变量,并定义一些以定义的方式更改容器行为。
    • 混合上述方法,在启动时仅使用 bash 脚本(修改 conf 并启动 nginx)安装卷,并在运行时启动该脚本。
      • 基于刚刚修改配置文件的 nginx 镜像创建一个新镜像,它将仅加权两个容器(配置文件)之间的差异。

    这有更多变体,使用更高级别的工具,但这个很简单

    【讨论】:

    • 感谢反馈,它提供了很好的广度,但它不是很具体,也没有代码示例等。
    猜你喜欢
    • 2021-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-23
    • 2018-12-11
    相关资源
    最近更新 更多