J’essaie de corriger les paramètres S3/CDN de mon site et je rencontre des problèmes. Un peu d’historique : j’utilisais Digital Ocean Spaces avec Bunny.net pour le CDN. J’avais tout configuré correctement dans les paramètres du site, mais je n’avais jamais défini DISCOURSE_CDN_URL dans app.yml car je ne comprenais pas son fonctionnement ou son importance. Récemment, j’ai migré vers Amazon S3 après avoir rencontré des problèmes avec DO Spaces, mais j’ai conservé Bunny.net pour le CDN. Je pense avoir compris cette partie du changement et @pfaffman va m’aider à remapper la base de données.
Le problème que je rencontre maintenant concerne la configuration de DISCOURSE_CDN_URL. Ce que j’ai fait : j’ai créé une nouvelle zone de tir (pull zone) sur Bunny pour cela, en définissant l’URL d’origine sur https://community.naturephotographers.network, qui est mon forum. J’ai un enregistrement CNAME pointant vers assets.naturephotographers.network. J’ai ensuite défini DISCOURSE_CDN_URL sur https://assets.naturephotographers.network. La reconstruction se déroule bien, mais les ressources du site ne sont pas récupérées via le CDN d’assets.naturephotographers.network ; elles proviennent pour une raison quelconque du bucket Amazon.
J’ai essayé d’exécuter cette tâche Rake :
after_assets_precompile:
- exec:
cd: $home
cmd:
- sudo -E -u discourse bundle exec rake s3:upload_assets
Mais cela échoue avec l’erreur suivante :
I, [2021-07-26T13:31:31.754617 #1] INFO -- : > cd /var/www/discourse && sudo -E -u discourse bundle exec rake s3:upload_assets
`/root` n'est pas accessible en écriture.
Bundler utilisera `/tmp/bundler20210726-6572-1a099eq6572' comme répertoire personnel temporaire.
ERREUR : Assurez-vous que S3 est configuré dans config/discourse.conf ou via des variables d'environnement
I, [2021-07-26T13:31:42.586559 #1] INFO -- :
I, [2021-07-26T13:31:42.587455 #1] INFO -- : Terminaison des processus asynchrones
I, [2021-07-26T13:31:42.587523 #1] INFO -- : Envoi de INT à HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/13/bin/postmaster -D /etc/postgresql/13/main pid: 56
I, [2021-07-26T13:31:42.587764 #1] INFO -- : Envoi de TERM à exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf pid: 173
173:signal-handler (2021-07-26 13:31:42.588 UTC [56] LOG: received fast shutdown request
1627306302) Received SIGTERM scheduling shutdown...
2021-07-26 13:31:42.594 UTC [56] LOG: aborting any active transactions
2021-07-26 13:31:42.596 UTC [56] LOG: background worker "logical replication launcher" (PID 65) exited with exit code 1
2021-07-26 13:31:42.599 UTC [6573] FATAL: terminating autovacuum process due to administrator command
2021-07-26 13:31:42.599 UTC [6573] CONTEXT: while vacuuming block 74749 of relation "pg_toast.pg_toast_21988"
2021-07-26 13:31:42.603 UTC [60] LOG: shutting down
173:M 26 Jul 2021 13:31:42.630 # User requested shutdown...
173:M 26 Jul 2021 13:31:42.630 * Saving the final RDB snapshot before exiting.
2021-07-26 13:31:42.766 UTC [56] LOG: database system is shut down
173:M 26 Jul 2021 13:31:43.123 * DB saved on disk
173:M 26 Jul 2021 13:31:43.123 # Redis is now ready to exit, bye bye...
Voici mes paramètres du site pour S3/CDN :
Autre remarque intéressante : si je place tous mes paramètres S3/CDN dans app.yml plutôt que dans les paramètres du site, mon site se brise et j’obtiens uniquement une page blanche, bien que les paramètres soient exactement les mêmes, avec une multitude d’erreurs 403 dans la console :
## S3 Configuration
DISCOURSE_USE_S3: true
DISCOURSE_S3_REGION: us-west-1
DISCOURSE_S3_ACCESS_KEY_ID: ***
DISCOURSE_S3_SECRET_ACCESS_KEY: ***
DISCOURSE_S3_CDN_URL: https://images.naturephotographers.network
DISCOURSE_S3_BUCKET: npnimages
DISCOURSE_S3_BACKUP_BUCKET: npn-backup
DISCOURSE_BACKUP_LOCATION: s3
Des idées ? Merci !
