3.4 업데이트 후 웹 서버에 연결할 수 없음

방금 ./launcher rebuild app을 실행하여 업데이트했는데, 이제 웹사이트에 접속할 수 없습니다. Postgres 업그레이드나 재구축 과정에서는 오류가 발생하지 않았습니다. discourse doctor의 출력 결과는 다음과 같습니다.

DISCOURSE DOCTOR Tue Feb 4 10:56:05 PM UTC 2025
OS: Linux redacted 6.8.0-52-generic #53-Ubuntu SMP PREEMPT_DYNAMIC Sat Jan 11 00:06:25 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux


Found containers/app.yml

==================== YML SETTINGS ====================
DISCOURSE_HOSTNAME=redacted.tld
SMTP_ADDRESS=cp120.redacted.net
DEVELOPER_EMAILS=host@redacted.tld
SMTP_PASSWORD=redacted
SMTP_PORT=587
SMTP_USER_NAME=record@redacted.tld
LETSENCRYPT_ACCOUNT_EMAIL=host@redacted.tld

==================== DOCKER INFO ====================
DOCKER VERSION: Docker version 26.1.3, build 26.1.3-0ubuntu1~24.04.1

DOCKER PROCESSES (docker ps -a)

CONTAINER ID   IMAGE                 COMMAND        CREATED          STATUS          PORTS                                                                      NAMES
26b5f30922a1   local_discourse/app   "/sbin/boot"   14 minutes ago   Up 12 minutes   0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp   app

26b5f30922a1   local_discourse/app   "/sbin/boot"   14 minutes ago   Up 12 minutes   0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp   app

Discourse container app is running


==================== PLUGINS ====================
          - sudo -E -u discourse git clone https://github.com/discourse/docker_manager.git
          - sudo -E -u discourse git clone https://github.com/discourse/discourse-data-explorer.git
          - sudo -E -u discourse git clone https://github.com/discourse/discourse-affiliate.git
##          - sudo -E -u discourse git clone https://github.com/paviliondev/discourse-locations.git
##          - sudo -E -u discourse git clone https://github.com/paviliondev/discourse-events.git
##          - sudo -E -u discourse git clone https://github.com/paviliondev/discourse-custom-wizard.git
##          - sudo -E -u discourse git clone https://github.com/gdpelican/mingle.git
##          - sudo -E -u discourse git clone https://github.com/synweap15/discourse-voice-record.git
          - sudo -E -u discourse git clone https://github.com/discourse/discourse-docs.git
          - sudo -E -u discourse git clone https://github.com/discourse/discourse-calendar.git
          - sudo -E -u discourse git clone https://github.com/discourse/discourse-adplugin.git

WARNING:
You have what appear to be non-official plugins.
If you are having trouble, you should disable them and try rebuilding again.

See https://github.com/discourse/discourse/blob/main/lib/plugin/metadata.rb for the official list.

========================================
Discourse version at redacted.tld: NOT FOUND
Discourse version at localhost: NOT FOUND


==================== MEMORY INFORMATION ====================
RAM (MB): 4005

               total        used        free      shared  buff/cache   available
Mem:            3820        1257        1137          52        1788        2562
Swap:           2047          75        1972

==================== DISK SPACE CHECK ====================
---------- OS Disk Space ----------
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        38G  6.0G   30G  17% /
/dev/sdb         25G   11G   13G  46% /var/discourse
/dev/sdb         25G   11G   13G  46% /var/lib/docker

==================== DISK INFORMATION ====================
Disk /dev/sda: 38.15 GiB, 40961572864 bytes, 80003072 sectors
Disk model: QEMU HARDDISK
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 4F4C86C1-C38F-4B0C-BA8A-01C10D997AE4

Device      Start      End  Sectors  Size Type
/dev/sda1  528384 80003038 79474655 37.9G Linux filesystem
/dev/sda14   2048     4095     2048    1M BIOS boot
/dev/sda15   4096   528383   524288  256M EFI System

Partition table entries are not in disk order.


Disk /dev/sdb: 25 GiB, 26843545600 bytes, 52428800 sectors
Disk model: Volume
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

==================== END DISK INFORMATION ====================

==================== MAIL TEST ====================
For a robust test, get an address from http://www.mail-tester.com/
Or just send a test message to yourself.
Email address for mail test? ('n' to skip) [host@redacted.tld]:
Sending mail to host@redacted.tld. . .
Testing sending to host@redacted.tld using cp120.redacted.net:587, username:record@redacted.tld with plain auth.
SMTP server connection successful.
Sending to host@redacted.tld. . .
Mail accepted by SMTP server.
Message-ID: a9640924-a68b-4e5e-a769-3110de133c08@redacted.tld

If you do not receive the message, check your SPAM folder
or test again using a service like http://www.mail-tester.com/.

If the message is not delivered it is not a problem with Discourse.
Check the SMTP server logs for the above Message ID to see why it
failed to deliver the message.
Replacing: SMTP_PASSWORD
Replacing: LETSENCRYPT_ACCOUNT_EMAIL
Replacing: DEVELOPER_EMAILS
Replacing: DISCOURSE_DB_PASSWORD
Replacing: Sending mail to

==================== DONE! ====================

여기서 무슨 일이 일어나고 있는지 알 수 있을까요?

최근 2시간 내외로 다시 빌드해 보셨나요? 잠시 동안 문제가 있었지만, 지금은 해결되었습니다.

네, 지난 1시간 안에 두 번 다시 빌드했습니다

사이트에 접속하려고 할 때 어떤 오류가 표시되나요?

“Safari가 서버에 연결할 수 없습니다”

서버에서 다음을 실행해 보실 수 있을까요?

cd /var/discourse
git rev-parse HEAD

다음과 같이 표시되어야 합니다.

# git rev-parse HEAD
efd6bc8ccbd9057c04d909ff48ecf8b704cae3ff

네, 맞아요

설치 환경에서 '특이점’이 있나요? 표준 설치와 다른 부분이 있나요?

말씀하신 문제는 제가 링크한 토픽의 문제와 매우 비슷해 보입니다. 다만 discourse_docker 버전으로 efd6bc8...이 표시된다면 이미 수정이 적용되어 있어야 합니다 :thinking:

생각나는 건 없지만, /var/discourse가 fstab에서 디스크로 마운트되어 있긴 합니다. 하지만 그렇게 된 지 몇 년 됐어요.

도움 주셔서 감사합니다. 다른 생각이 떠오르면 알려주세요.

같은 문제가 자신에게도 영향을 미치고 있는지 확인하려면 다음과 같은 작업을 수행할 수 있습니다.

./launcher enter app
cat /etc/nginx/conf.d/discourse.conf

해당 파일 어딘가에 다음 내용이 있어야 합니다.

listen 443 ssl;

이 내용이 없다면, 다른 주제에서 언급된 것과 동일한 증상입니다.

만약 이 내용이 있다면… 아쉽게도 완전히 다른 문제를 찾아야 할 것 같습니다 :sweat_smile:

응, 거기 있네

다시 한 번 확인해 보고 재빌드 직후 docker logs app 명령을 실행했습니다. 이 내용을 해석하는 데 도움을 주실 수 있나요?

run-parts: executing /etc/runit/1.d/00-ensure-links
run-parts: executing /etc/runit/1.d/00-fix-var-logs
run-parts: executing /etc/runit/1.d/01-cleanup-web-pids
run-parts: executing /etc/runit/1.d/anacron
run-parts: executing /etc/runit/1.d/cleanup-pids
Cleaning stale PID files
run-parts: executing /etc/runit/1.d/copy-env
run-parts: executing /etc/runit/1.d/letsencrypt
[Wed Feb 12 05:03:53 PM UTC 2025] Domains not changed.
[Wed Feb 12 05:03:53 PM UTC 2025] Skip, Next renewal time is: 2025-04-02T00:09:20Z
[Wed Feb 12 05:03:53 PM UTC 2025] Add '--force' to force to renew.
[Wed Feb 12 05:03:53 PM UTC 2025] Installing key to: /shared/ssl/redacteddomain.tld.key
[Wed Feb 12 05:03:53 PM UTC 2025] Installing full chain to: /shared/ssl/redacteddomain.tld.cer
[Wed Feb 12 05:03:53 PM UTC 2025] Run reload cmd: sv reload nginx
warning: nginx: unable to open supervise/ok: file does not exist
[Wed Feb 12 05:03:53 PM UTC 2025] Reload error for :
[Wed Feb 12 05:03:53 PM UTC 2025] Domains not changed.
[Wed Feb 12 05:03:53 PM UTC 2025] Skip, Next renewal time is: 2025-04-02T00:09:25Z
[Wed Feb 12 05:03:54 PM UTC 2025] Add '--force' to force to renew.
[Wed Feb 12 05:03:54 PM UTC 2025] Installing key to: /shared/ssl/redacteddomain.tld_ecc.key
[Wed Feb 12 05:03:54 PM UTC 2025] Installing full chain to: /shared/ssl/redacteddomain.tld_ecc.cer
[Wed Feb 12 05:03:54 PM UTC 2025] Run reload cmd: sv reload nginx
warning: nginx: unable to open supervise/ok: file does not exist
[Wed Feb 12 05:03:54 PM UTC 2025] Reload error for :
Started runsvdir, PID is 535
warning: redis: unable to open supervise/ok: file does not exist
nginx: [warn] duplicate extension "wasm", content type: "application/wasm", previous content type: "application/wasm" in /etc/nginx/conf.d/discourse.conf:4
nginx: [emerg] unknown "public" variable
ok: run: redis: (pid 550) 1s
ok: run: postgres: (pid 554) 1s
nginx: [warn] duplicate extension "wasm", content type: "application/wasm", previous content type: "application/wasm" in /etc/nginx/conf.d/discourse.conf:4
nginx: [emerg] unknown "public" variable
supervisor pid: 568 unicorn pid: 574
nginx: [warn] duplicate extension "wasm", content type: "application/wasm", previous content type: "application/wasm" in /etc/nginx/conf.d/discourse.conf:4
nginx: [emerg] unknown "public" variable
nginx: [warn] duplicate extension "wasm", content type: "application/wasm", previous content type: "application/wasm" in /etc/nginx/conf.d/discourse.conf:4

이것으로 인해 발생한 것 같습니다: