修改 nginx 配置文件

我安装了 openresty alpine docker 镜像,并将 conf.d 挂载到其中定义了服务器。它运行得很好。

接下来,我想更改 nginx.conf 文件并将 worker_process=auto 设置为自动。但是 worker_processes 在 nginx.conf 中被定义。我尝试在 Docker-compose 文件中挂载 nginx.conf

volumes:
 -  ./conf.d:/etc/nginx/conf.d
 -  ./conf/nginx.conf:/usr/local/openresty/nginx/conf/nginx.conf

然而,它在 ./conf 中创建了一个目录 nginx.conf

我如何挂载/修改 nginx.conf?

点赞
用户3288890
用户3288890

如果要更新nginx根配置,您将使用错误的Docker目录进行挂载。

Nginx配置文件

Docker工具会安装自己的nginx.conf文件。如果您想要直接覆盖它,可以在自己的Dockerfile中或通过卷绑定挂载来替换它。

对于Linux映像,该nginx.conf具有包含/etc/nginx/conf.d/*.conf指令;因此,该目录中的所有nginx配置都将包括在内。默认虚拟主机配置具有原始的OpenResty配置,并被复制到/etc/nginx/conf.d/default.conf中。

docker run -v /my/custom/conf.d:/etc/nginx/conf.d openresty/openresty:alpine

其次,最好使用绝对路径进行挂载。

docker run -v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf openresty/openresty:1.15.8.2-1-alpine

或者

docker run -v abs_path/nginx.conf:/etc/nginx/nginx.conf openresty/openresty:1.15.8.2-1-alpine

Openresty配置

docker run -v $PWD/conf/nginx.conf:/usr/local/openresty/nginx/conf/nginx.conf openresty/openresty:1.15.8.2-1-alpine

您应该挂载确切的文件,否则它将破坏容器。

进入图片描述 这是/usr/local/openresty/nginx/conf/nginx.conf的默认配置

# nginx.conf  --  docker-openresty
#
# This file is installed to:
#   `/usr/local/openresty/nginx/conf/nginx.conf`
# and is the file loaded by nginx at startup,
# unless the user specifies otherwise.
#
# It tracks the upstream OpenResty's `nginx.conf`, but removes the `server`
# section and adds this directive:
#     `include /etc/nginx/conf.d/*.conf;`
#
# The `docker-openresty` file `nginx.vh.default.conf` is copied to
# `/etc/nginx/conf.d/default.conf`.  It contains the `server section
# of the upstream `nginx.conf`.
#
# See https://github.com/openresty/docker-openresty/blob/master/README.md#nginx-config-files
#

#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;

events {
    worker_connections  1024;
}

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

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;
}
2019-08-31 02:46:40