Rsync 搭建小成本灾备系统,遇到个诡异问题求助(docker 搭建多站点 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
programV2

Rsync 搭建小成本灾备系统,遇到个诡异问题求助(docker 搭建多站点

  •  
  •   programV2 2020 年 11 月 9 日 1783 次点击
    这是一个创建于 1993 天前的主题,其中的信息可能已经有所发展或是发生改变。

    排查了两天了,也 google 了一大圈实在没有头绪, 来求助大家帮忙指点

    背景: 在 bwg 上买了两台 vps, 在 vps A 上利用 docker 搭建了 drupal 多站点, 网站 1 abc.com 和网站 2 efg.com 都运转正常, 然后我利用 bwg 的 snapchat 将 vps A 上的镜像导入到 vps B, 然后再利用 rsync 建立增量同步, 将 vps A 的内容用定时任务同步到 VPS B, 我也确认了 vpsA 上宿主机和容器内的文件创建者的 uid gid 都和 vps B 上的一致, 然后问题来了:我将网站 1 和 2 的 dns 都指向 VPS B,发现只有网站 1 能顺利打开并访问, 网站 2 却出现"An error occurred.Sorry, the page you are looking for is currently unavailable.Please try again later. 错误, 我进去网站查看日志报错信息如下:

    2020/11/09 10:57:29 [error] 6#6: *72 FastCGI sent in stderr: "PHP message: PDOException: SQLSTATE[HY000] [1044] Access denied for user 'drupal'@'%' to database 'abc' in /var/www/html/core/lib/Drupal/Component/DependencyInjection/PhpArrayContainer.php on line 79 #0 /var/www/html/core/lib/Drupal/Core/Database/Driver/mysql/Connection.php(149): PDO->__construct('mysql:host=drup...', 'drupal', '123456789', Array) #1 /var/www/html/core/lib/Drupal/Core/Database/Database.php(376): Drupal\Core\Database\Driver\mysql\Connection::open(Array) #2 /var/www/html/core/lib/Drupal/Core/Database/Database.php(166): Drupal\Core\Database\Database::openConnection('default', 'default') #3 [internal function]: Drupal\Core\Database\Database::getConnection('default') #4 /var/www/html/core/lib/Drupal/Component/DependencyInjection/PhpArrayContainer.php(79): call_user_func_array('Drupal\Core\Dat...', Array) #5 /var/www/html/core/lib/Drupal/Component/DependencyInjection/Container.php(171): Drupal\Component\DependencyInjection\PhpArrayContainer->createService(Array, 'database') #6 /var/ww" while reading response header from upstream, client: 104.160.45.251, server: www.abc.com, request: "GET /user/login HTTP/1.1", upstream: "fastcgi://172.18.0.2:9000", host: "www.abc.com"

    从日志上看像是数据库访问被拒绝了, 我到 settting.php 确认数据库登录信息都正确的, 并且我还登录 mysql 删除了原来的数据库,新建一个数据库,重启更新 setting 后, 日志里还是一样的出错信息, 请教 V 友们这个有可能是哪个环节出问题了呢? 确认了目录和文件的所有者及权限都与 VPS A 一样, 为什么网站 2 在 vpsA 可运转, 在 vpsB 就不行了, 而且网站 1 却是在不论是 vps A 或 B 都正常, 我这种 rsync 的方法没问题, 所以问题就出在网站 2 了, 但是网站 2 的相关配置文件我也检查过了, 我用的 drupal8, Drupal 比 Wordpress 和 Magento 好的一点在于,绝对的域名和路径设置信息没有保存在数据库中,我们迁移到新的网站后,不需要修改保存在数据库里的配置信息。所以问题也不会是数据库了, 但是为什么数据库的用户名 密码 主机名都正确还是登录不了呢? 显示 access denied

    求助大家指点一下, 谢谢!

    5 条回复    2020-11-10 18:04:36 +08:00
    programV2
        1
    programV2  
    OP
       2020 年 11 月 9 日
    另外 我两个网站的配置都是写在同一个 nginx.conf 文件里, 但是都是分开写, 像
    server { ...... access_log /var/log/nginx/abc.com.access.log;
    }
    server { ...... access_log /var/log/nginx/efg.com.access.log;
    }

    但是只有网站 abc.com 的生成日志文件了并且写入, 网站 efg 的没有生成相应名称的日志文件, 反而所有日志都写入到网站 abc 的 abc.com.access.log 里, 请问为什么网站 B 的 access_log 配置没有生效呢?
    再次感谢 大家的回复
    programV2
        2
    programV2  
    OP
       2020 年 11 月 9 日 via iPhone
    补充:网站 abc 和网站 efg 有各自的独立数据库。 因为 docker compose 参数只能创建一个数据库,所以第二个网站的数据库,是我之后登录数据库容器手动创建的。
    laminux29
        3
    laminux29  
       2020 年 11 月 9 日   1
    你的问题,对系统做一次全量对比,就能找出问题所在。

    不过你这种镜像方法很迷,一个动态系统,其状态与各种数据是随时变化,而 rsync 这种备份方法属于静态的,备份出来的数据,对于动态系统来说,很容易会出现数据丢失、数据错误等各种奇奇怪怪的问题。

    动态系统备份只有两种办法,第一种是把整个系统包括数据库,全部停止后,再进行备份或镜像。第二种需要系统内部支持运行时备份。如果系统内部不支持运行时备份,你就没办法不出错地对动态系统进行运行时备份,包括虚拟机级的快照这种方法也不行。
    programV2
        4
    programV2  
    OP
       2020 年 11 月 9 日 via iPhone
    @laminux29 感谢您的回复!你能看一下我一楼的回复吗?. 为什么网站 2 在 vpsA 可运转, 在 vpsB 就不行了, 而且网站 1 却不论是 vps A 或 B 都正常, 我这种 rsync 的方法应该没问题,不然网站 1 就不可能正常运转. 所以问题就出在网站 2 了, 但是网站 2 的相关配置文件我也检查过了, 我用的 drupal8, Drupal 比 Wordpress 和 Magento 好的一点在于,绝对的域名和路径设置信息没有保存在数据库中,我们迁移到新的网站后,不需要修改保存在数据库里的配置信息。所以问题也不会是数据库了, 但是为什么数据库的用户名 密码 主机名都正确还是登录不了呢? 显示 access denied
    @laminux29
    programV2
        5
    programV2  
    OP
       2020 年 11 月 10 日
    @laminux29 V 友好 请问我在同一个 mysql 容器创建了两个数据库(第一个数据库是用 docker-compose.yml, 第二个是后面登录容器手动创建的, 为什么第一个网站成功运行, 第二个却数据库连接出错, 但是我确认用户名 密码信息都是正确的, 数据库 host 也跟第一个数据库一样, 这是报错日志 , 谢谢大家帮忙指点一下,

    2020/11/09 10:57:29 [error] 6#6: *72 FastCGI sent in stderr: "PHP message: PDOException: SQLSTATE[HY000] [1044] Access denied for user 'drupal'@'%' to database 'abc' in /var/www/html/core/lib/Drupal/Component/DependencyInjection/PhpArrayContainer.php on line 79 #0 /var/www/html/core/lib/Drupal/Core/Database/Driver/mysql/Connection.php(149): PDO->__construct('mysql:host=drup...', 'drupal', '123456789', Array) #1 /var/www/html/core/lib/Drupal/Core/Database/Database.php(376): Drupal\Core\Database\Driver\mysql\Connection::open(Array) #2 /var/www/html/core/lib/Drupal/Core/Database/Database.php(166): Drupal\Core\Database\Database::openConnection('default', 'default') #3 [internal function]: Drupal\Core\Database\Database::getConnection('default') #4 /var/www/html/core/lib/Drupal/Component/DependencyInjection/PhpArrayContainer.php(79): call_user_func_array('Drupal\Core\Dat...', Array) #5 /var/www/html/core/lib/Drupal/Component/DependencyInjection/Container.php(171): Drupal\Component\DependencyInjection\PhpArrayContainer->createService(Array, 'database') #6 /var/ww" while reading response header from upstream, client: 104.160.45.251, server: www.abc.com, request: "GET /user/login HTTP/1.1", upstream: "fastcgi://172.18.0.2:9000", host: "www.abc.com"
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2700 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 31ms UTC 06:24 PVG 14:24 LAX 23:24 JFK 02:24
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86