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 / 问题 / 1067402
Accepted
Riccardo Cossu
Riccardo Cossu
Asked: 2021-06-22 23:19:33 +0800 CST2021-06-22 23:19:33 +0800 CST 2021-06-22 23:19:33 +0800 CST

docker-compose 与 nginx 和 nextcloud FPM 停止接受 https 连接

  • 772

我有一个相当标准的设置,使用 nginx 作为 Web 前端(带有 https 证书等)和 nextcloud FPM 后端;整个安装的流量非常低,因为我是唯一一个使用它的人。

在某一时刻 https 停止工作,来自外部的每个连接都会导致超时或连接被拒绝;在这种情况下,似乎 nextcloud 正在工作,而 nginx 没有。我认为这可能与我的主机上的一些节能有关,但事实并非如此,因为同一主机上的所有其他容器都可以正常工作;有趣的是,有一种简单的方法可以让它再次工作,那就是在主机上打开一个 shell 并执行以下操作:

cd $NEXTCLOUD_DIRECTORY

其中 NEXTCLOUD_DIRECTORY 是应用程序的基本目录,docker-compose.yml 文件和数据目录都在其中(位于 $HOME/docker/nextcloud-letsencrypt)。

我只是不明白为什么会发生这种情况以及为什么该操作是一种解决方案...

这是我的撰写文件:

version: '3'
  services:
    nginx:
      image: nginx:alpine
      ports:
        - "80:80"
        - "127.0.0.1:8443:443"
      volumes:
        - ./data/nginx:/etc/nginx/conf.d
        - ./data/certbot/conf:/etc/letsencrypt
        - ./data/certbot/www:/var/www/certbot
        - ./data/nextcloud/www:/var/www/html:ro
        - ./data/nextcloud/apps:/var/www/html/custom_apps:ro
      restart: unless-stopped
      command: "/bin/sh -c 'while :; do sleep 6h & wait $${!}; nginx -s reload; done & nginx -g \"daemon off;\"'"
    certbot:
      image: certbot/certbot
      volumes:
        - ./data/certbot/conf:/etc/letsencrypt
        - ./data/certbot/www:/var/www/certbot
      entrypoint: "/bin/sh -c 'trap exit TERM; while :; do certbot renew; sleep 12h & wait $${!}; done;'"
      restart: unless-stopped
    cloud-db:
      container_name: ${DB_CONTAINER_NAME}
      image: mariadb:${DB_IMAGE_TAG}
      restart: unless-stopped
      command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
      volumes:
        ...
      environment:
        MYSQL_DATABASE: ${MYSQL_DATABASE}
        MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
        MYSQL_USER: ${MYSQL_USER}
        MYSQL_PASSWORD: ${MYSQL_PASSWORD}
    app:
     image: nextcloud:21-fpm-alpine
     links:
       - cloud-db
     user: "1000:1004"
     volumes:
       - ./data/nextcloud/www:/var/www/html
       - ./data/nextcloud/apps:/var/www/html/custom_apps
       - ./data/nextcloud/config:/var/www/html/config
       - /mnt/usb/shared/nextcloud:/var/www/html/data
       - /mnt/usb/Expansion_2/serie:/mnt/serie:ro
       - /mnt/usb/archivio/archivio:/mnt/archivio:ro
     restart: unless-stopped

./data 位于根 FS 中,在用户 1000 的主目录中。

/mnt/usb/shared/nextcloud 在 ext4 USB 驱动器上(ext4 默认值,nofail 0 0),R/W 给用户

/mnt/usb/Expansion_2 是另一个通过 NC 服务的 ex4 USB 驱动器(ext4 默认值,nofail 0 0)(它们在 NC 中注册为外部存储)

nginx docker-compose nextcloud
  • 1 1 个回答
  • 705 Views

1 个回答

  • Voted
  1. Best Answer
    Riccardo Cossu
    2021-07-01T00:52:47+08:002021-07-01T00:52:47+08:00

    似乎解决方案是使用 restart:always 而不是“除非停止”。我真的不知道为什么我需要它,因为没有人停止容器,所以它们应该无限期地运行,就像我在同一台机器上使用“除非停止”并无限期地保持下去的许多其他容器一样。

    • 0

相关问题

  • 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