버전: v2.6.0.beta2
설치: 호스트의 /forum/discourse 경로에서 Apache 리버스 프록시를 사용한 Docker 환경으로 서브폴더 /forum/discourse 설정 실행 중
서브폴더 설치를 위해 여기의 지침을 따랐으며, 설치 자체는 정상적으로 완료되었습니다.
그러나 일부 리소스 URL에 접두사가 올바르게 붙지 않아 404 오류가 발생합니다. 예를 들어, 기본 헤더 로고의 URL은 /forum/discourse/images/discourse-logo-sketch.png여야 하지만, Discourse는 /images/discourse-logo-sketch.png를 사용하고 있습니다.
코드베이스에 익숙하지는 않지만, 이 문제는 여기에서 application_logo_url을 UrlHelper.absolute()로 감싸서 해결해야 한다고 생각합니다.
추가로 동일한 문제의 인스턴스를 찾으면 이 토픽에 추가하겠습니다. 이것이 실제로 문제인지, 아니면 제가 무언가를 잘못하고 있는지 알려주시면 감사하겠습니다. PR을 제출하는 것도 기꺼이 하겠습니다.
app.yml
templates:
- "templates/postgres.template.yml"
- "templates/redis.template.yml"
- "templates/web.template.yml"
- "templates/web.ratelimited.template.yml"
expose:
# 호스트는 이 포트에 리버스 프록시가 있습니다
- "8080:80" # http
- "8443:443" # https
params:
db_default_text_search_config: "pg_catalog.english"
db_shared_buffers: "3072MB"
env:
LANG: en_US.UTF-8
UNICORN_WORKERS: 8
DISCOURSE_HOSTNAME: mydomain.com
DISCOURSE_RELATIVE_URL_ROOT: /forum/discourse
DISCOURSE_DEVELOPER_EMAILS: 'info@mydomain.com'
DISCOURSE_SMTP_ADDRESS: mydomain.com
DISCOURSE_SMTP_PORT: 25
DISCOURSE_SMTP_USER_NAME: user
DISCOURSE_SMTP_PASSWORD: pass
## Docker 컨테이너는 상태가 없으며, 모든 데이터는 /shared에 저장됩니다
volumes:
- volume:
host: /var/discourse/shared/standalone
guest: /shared
- volume:
host: /var/discourse/shared/standalone/log/var-log
guest: /var/log
hooks:
after_code:
- exec:
cd: $home/plugins
cmd:
- git clone https://github.com/discourse/docker_manager.git
## 빌드 후 실행할 모든 사용자 지정 명령
run:
- exec: echo "Beginning of custom commands"
## https://meta.discourse.org/t/subfolder-support-with-docker/30507
- exec:
cd: $home
cmd:
- mkdir -p public/forum/discourse
- cd public/forum/discourse && ln -s ../../uploads && ln -s ../../backups
- replace:
global: true
filename: /etc/nginx/conf.d/discourse.conf
from: proxy_pass http://discourse;
to: |
rewrite ^/(.*)$ /forum/discourse/$1 break;
proxy_pass http://discourse;
- replace:
filename: /etc/nginx/conf.d/discourse.conf
from: etag off;
to: |
etag off;
location /forum/discourse {
rewrite ^/forum/discourse/?(.*)$ /$1;
}
- replace:
global: true
filename: /etc/nginx/conf.d/discourse.conf
from: $proxy_add_x_forwarded_for
to: $http_your_original_ip_header
- exec: echo "End of custom commands"