AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1157325
Accepted
SoftTimur
SoftTimur
Asked: 2024-04-03 20:47:11 +0800 CST2024-04-03 20:47:11 +0800 CST 2024-04-03 20:47:11 +0800 CST

docker 中的 Nginx 配置文件

  • 772

我有一台具有以下功能的服务器docker-compose.yml:

version: "3"
services:
  frontend:
    restart: unless-stopped
    image: staticfloat/nginx-certbot
    ports:
      - 80:80/tcp
      - 443:443/tcp
    environment:
      CERTBOT_EMAIL: [email protected]
    volumes:
      - ./conf.d:/etc/nginx/user.conf.d:ro
      - letsencrypt:/etc/letsencrypt
  studio:
    image: bitnami/nginx:latest
    restart: always
    volumes: 
      - ./build:/app
      - ./default.conf:/opt/bitnami/nginx/conf/server_blocks/default.conf:ro
      - ./configs/config.prod.js:/app/lib/config.js
    depends_on: 
    - frontend

volumes:
  letsencrypt:

networks:
  default:
    external:
      name: studio

此外,还有一个conf.d/prod.conf用于 nginx 配置的文件。

我做到了docker exec -it frontend_frontend_1 /bin/bash,我可以看到有哪些/etc/nginx/user.conf.d/prod.conf是/etc/nginx/conf.d/prod.conf相同的。我知道是/etc/nginx/user.conf.d/prod.conf因为- ./conf.d:/etc/nginx/user.conf.d:roin才安装的docker-compose.yml,但为什么会在那里呢/etc/nginx/conf.d/prod.conf?

有人知道吗?

nginx
  • 1 1 个回答
  • 24 Views

1 个回答

  • Voted
  1. Best Answer
    larsks
    2024-04-03T21:29:39+08:002024-04-03T21:29:39+08:00

    但为什么会有/etc/nginx/conf.d/prod.conf?

    因为当您运行staticfloat/nginx-certbot图像时,它会运行脚本/scripts/entrypoint.sh,该脚本运行以下代码(除其他外):

    template_user_configs() {
        SOURCE_DIR="${1-/etc/nginx/user.conf.d}"
        TARGET_DIR="${2-/etc/nginx/conf.d}"
    
        # envsubst needs dollar signs in front of all variable names
        DENV=$(echo ${ENVSUBST_VARS} | sed -E 's/\$*([^ ]+)/\$\1/g')
    
        echo "templating scripts from ${SOURCE_DIR} to ${TARGET_DIR}"
        echo "Substituting variables ${DENV}"
    
        if [ ! -d "$SOURCE_DIR" ]; then
            echo "no ${SOURCE_DIR}, nothing to do."
        else
            for conf in ${SOURCE_DIR}/*.conf; do
                echo " -> ${conf}"
                envsubst "${DENV}" <"${conf}" > "${TARGET_DIR}/$(basename ${conf})"
            done
        fi
    }
    

    在执行环境变量替换时将文件从/etc/nginx/user.conf.dinto复制。/etc/nginx/conf.d

    • 2

相关问题

  • Gzip 与反向代理缓存

  • nginx 作为代理的行为

  • Nginx 学习资源 [关闭]

  • 提供 70,000 个静态文件 (jpg) 的最佳方式?

  • 在 Apache、LightTPD 和 Nginx Web 服务器上提供 PHP 5.x 应用程序的现状?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve