지난주부터 코어 플러그인 및 설치된 모든 플러그인이 포럼에서 활성화되어 있더라도 기능을 멈추었습니다. 처음에는 이전에 언급된 버그(FIX: Compile missing rollup plugin bundles on demand in development - #7 by david)와 관련이 있는 줄 알았지만, 이후 여러 번 업데이트를 실행해 보았음에도 문제가 해결되지 않았습니다. 이전에 사용되지 않던 사전 설치된 ‘User Notes’ 플러그인을 활성화해 보았지만, 어떤 사용자에게도 메모를 추가할 수 있는 옵션이 없습니다. 또한 Docker 매니저도 작동이 중단되어 모든 업데이트를 서버 레벨에서 실행해야 하며, 이로 인해 관리자 팀이 아니라 단 한 명만 업데이트를 적용할 수 있는 상황이 되었습니다.
해결책을 찾아보았지만, ‘플러그인이 자동으로 비활성화됨’ 또는 이와 유사한 내용만 찾을 수 있을 뿐, 이 문제처럼 구체적인 해결책은 없었습니다.
롤백은 가능한 한 피하고 싶지만, 현재로서는 마지막 수단이 될 것 같습니다. 가능한 해결책이나 우리가 살펴봐야 할 방향에 대해 조언해 주실 수 있을까요?
S3/S3 호환 스토리지를 사용하고 계신다면, 불행히도 CDN 특정 구성을 추가하는 것이 유일한 신뢰할 수 있는 방법입니다. 이 주제가 S3 자산에 관한 것이라고 가정했는데, 이제 확신이 서지 않습니다.
애플리케이션 서버에 대해 단순한 CDN을 사용하는 사용자의 경우, 추가적인 구성 작업이 필요하지 않았어야 합니다. 테마 JavaScript 및 highlightjs 번들과 정확히 동일하게 ‘그저 작동해야’ 합니다. 하지만 우리의 기본 NGINX 구성에서 헤더가 실제로 누락되어 있었던 것 같습니다. 죄송합니다!
이것이 문제를 해결하고 다시 작동하게 만들 것입니다:
이 PR이 병합된 후에는 적용을 위해 ./launcher rebuild app 실행이 필요합니다. NGINX 구성 변경은 UI 업데이트 동안 적용되지 않습니다.
f.insertcred.it가 사용자의 S3 CDN이라는 가정 하에, HighlightJS는 S3 CDN이 아닌 '애플리케이션 CDN’에서 로드되어야 하므로 이는 다소 의외인 문제입니다. 제가 아는 한, 지난 몇 달간 highlightjs와 관련된 변경 사항은 없었습니다.
애플리케이션 CDN을 사용하고 계신가요? 아니면 S3 + S3 CDN만 사용하고 계신가요?
제가 아는 한, 우리는 CDN 앱을 사용하고 있지 않습니다. app.yml에서 DISCOURSE_CDN_URL 주석 처리를 해제하지 않았습니다.
DISCOURSE_S3_ENDPOINT와 DISCOURSE_S3_CDN_URL과 같은 S3 변수만 사용하고 있습니다.
민감한 정보는 제거한 우리의 app.yml 파일입니다.
## this is the all-in-one, standalone Discourse Docker container template
##
## After making changes to this file, you MUST rebuild
## /var/discourse/launcher rebuild app
##
## BE *VERY* CAREFUL WHEN EDITING!
## YAML FILES ARE SUPER SUPER SENSITIVE TO MISTAKES IN WHITESPACE OR ALIGNMENT!
## visit http://www.yamllint.com/ to validate this file as needed
templates:
- "templates/postgres.template.yml"
- "templates/redis.template.yml"
- "templates/web.template.yml"
## Uncomment the next line to enable the IPv6 listener
#- "templates/web.ipv6.template.yml"
- "templates/web.ratelimited.template.yml"
## Uncomment these two lines if you wish to add Lets Encrypt (https)
- "templates/web.ssl.template.yml"
- "templates/web.letsencrypt.ssl.template.yml"
## which TCP/IP ports should this container expose?
## If you want Discourse to share a port with another webserver like Apache or nginx,
## see https://meta.discourse.org/t/17247 for details
expose:
- "80:80" # http
- "443:443" # https
params:
db_default_text_search_config: "pg_catalog.english"
## Set db_shared_buffers to a max of 25% of the total memory.
## will be set automatically by bootstrap based on detected RAM, or you can override
db_shared_buffers: "256MB"
## can improve sorting performance, but adds memory usage per-connection
#db_work_mem: "40MB"
## Which Git revision should this container use? (default: tests-passed)
#version: tests-passed
## Maximum upload size (default: 10m)
upload_size: 20m
env:
LC_ALL: en_US.UTF-8
LANG: en_US.UTF-8
LANGUAGE: en_US.UTF-8
# DISCOURSE_DEFAULT_LOCALE: en
## How many concurrent web requests are supported? Depends on memory and CPU cores.
## will be set automatically by bootstrap based on detected CPUs, or you can override
UNICORN_WORKERS: 4
## TODO: The domain name this Discourse instance will respond to
## Required. Discourse will not work with a bare IP number.
DISCOURSE_HOSTNAME: forums.insertcredit.com
## Uncomment if you want the container to be started with the same
## hostname (-h option) as specified above (default "$hostname-$config")
#DOCKER_USE_HOSTNAME: true
## TODO: List of comma delimited emails that will be made admin and developer
## on initial signup example 'user1@example.com,user2@example.com'
DISCOURSE_DEVELOPER_EMAILS: 'EMAIL'
## TODO: The SMTP mail server used to validate new accounts and send notifications
# SMTP ADDRESS, username, and password are required
# WARNING the char '#' in SMTP password can cause problems!
DISCOURSE_SMTP_ADDRESS: smtp.mailgun.org
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: USERNAME
DISCOURSE_SMTP_PASSWORD: "PASSWORD"
DISCOURSE_SMTP_ENABLE_START_TLS: true # (optional, default true)
DISCOURSE_SMTP_DOMAIN: forums.insertcredit.com
DISCOURSE_NOTIFICATION_EMAIL: noreply@forum.insertcred.it
DISCOURSE_USE_S3: true
DISCOURSE_S3_REGION: nyc3
DISCOURSE_S3_ENDPOINT: https://nyc3.digitaloceanspaces.com
DISCOURSE_S3_ACCESS_KEY_ID: KEY_ID
DISCOURSE_S3_SECRET_ACCESS_KEY: ACCESS_KEY_VALYE
DISCOURSE_S3_CDN_URL: https://f.insertcred.it
DISCOURSE_S3_BUCKET: insertcredit-forum
DISCOURSE_S3_BACKUP_BUCKET: insertcredit-forum-backup
DISCOURSE_BACKUP_LOCATION: s3
DISCOURSE_S3_INSTALL_CORS_RULE: false
DISCOURSE_CAN_PERMANENTLY_DELETE: true
## If you added the Lets Encrypt template, uncomment below to get a free SSL certificate
LETSENCRYPT_ACCOUNT_EMAIL: EMAIL
## The http or https CDN address for this Discourse instance (configured to pull)
## see https://meta.discourse.org/t/14857 for details
#DISCOURSE_CDN_URL: https://discourse-cdn.example.com
## The maxmind geolocation IP address key for IP address lookup
## see https://meta.discourse.org/t/-/137387/23 for details
#DISCOURSE_MAXMIND_LICENSE_KEY: 1234567890123456
## The Docker container is stateless; all data is stored in /shared
volumes:
- volume:
host: /var/discourse/shared/standalone
guest: /shared
- volume:
host: /var/discourse/shared/standalone/log/var-log
guest: /var/log
## Plugins go here
## see https://meta.discourse.org/t/19157 for details
hooks:
after_code:
- exec:
cd: $home/plugins
cmd:
- git clone https://github.com/discourse/docker_manager.git
- git clone https://github.com/discourse/discourse-bbcode-color.git
- git clone https://github.com/discourse/discourse-signatures.git
- git clone https://github.com/discourse/discourse-chart.git
after_assets_precompile:
- exec:
cd: $home
cmd:
- sudo -E -u discourse bundle exec rake s3:upload_assets
- sudo -E -u discourse bundle exec rake s3:expire_missing_assets
## Any custom commands to run after building
run:
- exec: echo "Beginning of custom commands"
## If you want to set the 'From' email address for your first registration, uncomment and change:
## After getting the first signup email, re-comment the line. It only needs to run once.
#- exec: rails r "SiteSetting.notification_email='info@unconfigured.discourse.org'"
- exec: echo "End of custom commands"
이 정보가 질문에 도움이 되기를 바랍니다. 주목할 점은 며칠 전 발생했던 아바타가 사라지는 문제에 대한 보고를 더 이상 받지 못하고 있다는 것입니다. 제 지식 범위 내에서 아무것도 변경되지 않았으므로, 이전 문제가 해결된 후 시간이 지남에 따라 자연스럽게 해결된 것이었는지, 아니면 단순히 소수의 사용자들에게만 해당되는 문제였는지 정확히 알 수 없습니다.