当社は この ウェブサイトを持っています。Ubuntu 上で Discourse の Docker フォーラムをサブフォルダとして設定する必要があります。CDN を使用せず、Discourse を TalkWithStranger Ask - Ask and chat random strangers and meet new people in online free chat rooms. で提供したいと考えています。
このチュートリアル に従って設定を試みましたが、以下の問題が発生しています。
- アバターが 2〜3 回の再構築後に消える
- トピックにアップロードされた画像が、いくつかの再構築後に 404 エラーを返す
このテストドメイン のバグを修正していただき、その後、ライブウェブサイト(95% は完了しています)に同じバグ修正を適用できるようにしてください。
私の app.yml
## Docker によるサブフォルダサポート https://meta.discourse.org/t/subfolder-support-with-docker/30507
## discourse-terraform Docker 設定テンプレート
##
## このファイルを編集した後、ライブの Discourse インスタンスに変更を反映させるには、必ず再構築が必要です。
##
## /var/discourse/launcher rebuild app
##
## これはオールインワンのスタンドアロン Discourse Docker コンテナテンプレートです
# ratelimited テンプレートをコメントアウトすることで、レート制限を追加できます。
# デフォルトでは、IP あたり 1 秒あたり 12 リクエスト、IP あたり 1 分あたり 100 リクエストを許可します。
# この設定は、このファイル内のパラメータを修正することで変更可能です。
templates:
- "templates/postgres.template.yml"
- "templates/redis.template.yml"
- "templates/web.template.yml"
- "templates/sshd.template.yml"
## このコンテナが公開する TCP/IP ポートはどれですか?
expose:
- "1357:80" # Discourse を実行したいポートに変更してください # ホストのポート 80 をコンテナのポート 80 (http) に転送
#- "2222:22" # ホストのポート 2222 をコンテナのポート 22 (ssh) に転送
params:
db_default_text_search_config: "pg_catalog.english"
## db_shared_buffers を PostgreSQL に割り当てるメモリの 1/3 に設定してください
## 1GB インストールの場合は 128MB、4GB インスタンスの場合は 1GB に設定可能です
db_shared_buffers: "512MB"
#
## このコンテナが使用する Git リビジョンはどれですか?(デフォルト: tests-passed)
#version: tests-passed
env:
LANG: en_US.UTF-8
## TODO: 同時にサポートされる Web リクエスト数はいくつですか?
## 2GB の場合、3〜4 ワーカーを、1GB の場合は 2 ワーカーを推奨します。
UNICORN_WORKERS: 3
##
## TODO: 初期サインアップ時に管理者および開発者として指定される、カンマ区切りのメールアドレスリスト
## 例: 'user1@example.com, user2@example.com'
DISCOURSE_DEVELOPER_EMAILS: "ahmeds.works@gmail.com" # これらのメールをサイト管理者のメールに変更してください
##
## TODO: この Discourse インスタンスが応答するドメイン名
DISCOURSE_RELATIVE_URL_ROOT: /ask
DISCOURSE_HOSTNAME: "privitevps.ga" # このドメインをあなたのウェブサイトのドメインに変更してください
##
## TODO: この Discourse インスタンスが使用するメールサーバー
# smtp 設定をあなたの smtp 設定に変更してください
DISCOURSE_SMTP_ADDRESS: smtp.example.com
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: example@example.com
DISCOURSE_SMTP_PASSWORD: example_password
##
## この Discourse インスタンスの CDN アドレス(プルするように設定されています)
#DISCOURSE_CDN_URL: //discourse-cdn.example.com
## これらのコンテナはステートレスであり、すべてのデータは /shared に保存されます
volumes:
- volume:
host: /var/discourse/shared/standalone
guest: /shared
- volume:
host: /var/discourse/shared/standalone/log/var-log
guest: /var/log
## Docker Manager プラグインを使用すると、Discourse をワンクリックでアップグレードできます
## http://discourse.example.com/admin/docker
hooks:
after_code:
- exec:
cd: $home/plugins
cmd:
- mkdir -p plugins
- git clone https://github.com/discourse/docker_manager.git
- git clone https://github.com/discourse/discourse-voting.git
## 覚えておいてください、これは YAML 構文です。名前付きブロックは 1 つしか持てません
run:
- exec:
cd: $home
cmd:
- rm -fr public/assets
- sudo -E -u discourse bundle exec rake assets:precompile
- mkdir -p public/ask
- cd public/ask && ln -s ../uploads && ln -s ../backups
- rm public/uploads
- rm public/backups
- replace:
global: true
filename: /etc/nginx/conf.d/discourse.conf
from: proxy_pass http://discourse;
to: |
rewrite ^/(.*)$ /ask/$1 break;
proxy_pass http://discourse;
- replace:
filename: /etc/nginx/conf.d/discourse.conf
from: etag off;
to: |
etag off;
location /ask {
rewrite ^/ask/?(.*)$ /$1;
}
- replace:
filename: /etc/nginx/conf.d/discourse.conf
from: $proxy_add_x_forwarded_for
to: $http_fastly_client_ip
global: true
- exec: echo "カスタムコマンドの終了"
- exec: awk -F\# '{print $1;}' ~/.ssh/authorized_keys | awk 'BEGIN { print "このコンテナの承認された SSH キー:"; } NF\u003e=2 {print $NF;}'
nginx 設定
location /ask {
proxy_pass http://localhost:1357;
proxy_read_timeout 90;
proxy_redirect http://localhost:1357 https://privitevps.ga;
}
Discourse エラーログ
/var/www/discourse/app/models/report.rb:267:in `rescue in find'
/var/www/discourse/app/models/report.rb:234:in `find'
/var/www/discourse/app/controllers/admin/reports_controller.rb:42:in `block (2 levels) in bulk'
actionpack-6.0.3.5/lib/action_controller/metal/strong_parameters.rb:345:in `block in each_pair'
actionpack-6.0.3.5/lib/action_controller/metal/strong_parameters.rb:344:in `each_pair'
actionpack-6.0.3.5/lib/action_controller/metal/strong_parameters.rb:344:in `each_pair'
/var/www/discourse/app/controllers/admin/reports_controller.rb:31:in `block in bulk'
/var/www/discourse/lib/hijack.rb:56:in `instance_eval'
/var/www/discourse/lib/hijack.rb:56:in `block in hijack'
/var/www/discourse/lib/scheduler/defer.rb:94:in `block in do_work'
rails_multisite-2.5.0/lib/rails_multisite/connection_management.rb:76:in `with_connection'
/var/www/discourse/lib/scheduler/defer.rb:89:in `do_work'
/var/www/discourse/lib/scheduler/defer.rb:79:in `block (2 levels) in start_thread'
PostgreSQL ログ
2021-04-01 18:33:04.209 UTC [51] LOG: starting PostgreSQL 13.2 (Debian 13.2-1.pgdg100+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 8.3.0-6) 8.3.0, 64-bit
2021-04-01 18:33:04.210 UTC [51] LOG: listening on IPv4 address "0.0.0.0", port 5432
2021-04-01 18:33:04.211 UTC [51] LOG: listening on IPv6 address "::", port 5432
2021-04-01 18:33:04.211 UTC [51] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
2021-04-01 18:33:04.223 UTC [73] LOG: database system was shut down at 2021-04-01 18:32:19 UTC
2021-04-01 18:33:04.230 UTC [51] LOG: database system is ready to accept connections
2021-04-01 18:44:16.543 UTC [1155] discourse@discourse LOG: provided user name (discourse) and authenticated user name (root) do not match
2021-04-01 18:44:16.544 UTC [1155] discourse@discourse FATAL: Peer authentication failed for user "discourse"
2021-04-01 18:44:16.544 UTC [1155] discourse@discourse DETAIL: Connection matched pg_hba.conf line 94: "local all all peer"
2021-04-02 03:33:33.893 UTC [36640] discourse@discourse LOG: duration: 141.998 ms statement: COPY public.stylesheet_cache (id, target, digest, content, created_at, updated_at, theme_id, source_map) TO stdout;
2021-04-02 17:49:50.676 UTC [92100] discourse@discourse LOG: duration: 156.461 ms statement: DO $$DECLARE row record;
BEGIN
-- create <destination> schema if it does not exists already
-- NOTE: DROP & CREATE SCHEMA is easier, but we don't want to drop the public schema
-- otherwise extensions (like hstore & pg_trgm) won't work anymore...
CREATE SCHEMA IF NOT EXISTS backup;
-- move all <source> tables to <destination> schema
FOR row IN SELECT tablename FROM pg_tables WHERE schemaname = 'public' AND tableowner = 'discourse'
LOOP
EXECUTE 'DROP TABLE IF EXISTS backup.' || quote_ident(row.tablename) || ' CASCADE;';
EXECUTE 'ALTER TABLE public.' || quote_ident(row.tablename) || ' SET SCHEMA backup;';
END LOOP;
-- move all <source> views to <destination> schema
FOR row IN SELECT viewname FROM pg_views WHERE schemaname = 'public' AND viewowner = 'discourse'
LOOP
EXECUTE 'DROP VIEW IF EXISTS backup.' || quote_ident(row.viewname) || ' CASCADE;';
EXECUTE 'ALTER VIEW public.' || quote_ident(row.viewname) || ' SET SCHEMA backup;';
END LOOP;
END$$;
2021-04-02 17:49:52.092 UTC [92128] discourse@discourse LOG: duration: 114.918 ms statement: COPY public.scheduler_stats (id, name, hostname, pid, duration_ms, live_slots_start, live_slots_finish, started_at, success, error) FROM stdin;
2021-04-02 17:49:53.398 UTC [92128] discourse@discourse LOG: duration: 1266.208 ms statement: COPY public.stylesheet_cache (id, target, digest, content, created_at, updated_at, theme_id, source_map) FROM stdin;
2021-04-02 17:51:24.451 UTC [51] LOG: received smart shutdown request
2021-04-02 17:51:26.828 UTC [51] LOG: background worker "logical replication launcher" (PID 79) exited with exit code 1
2021-04-02 17:51:26.836 UTC [74] LOG: shutting down
2021-04-02 17:51:26.948 UTC [51] LOG: database system is shut down
2021-04-02 18:00:56.877 UTC [52] LOG: starting PostgreSQL 13.2 (Debian 13.2-1.pgdg100+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 8.3.0-6) 8.3.0, 64-bit
2021-04-02 18:00:56.879 UTC [52] LOG: listening on IPv4 address "0.0.0.0", port 5432
2021-04-02 18:00:56.879 UTC [52] LOG: listening on IPv6 address "::", port 5432
2021-04-02 18:00:56.880 UTC [52] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
2021-04-02 18:00:56.893 UTC [73] LOG: database system was shut down at 2021-04-02 18:00:11 UTC
2021-04-02 18:00:56.909 UTC [52] LOG: database system is ready to accept connections
2021-04-02 18:03:23.275 UTC [343] discourse@discourse LOG: duration: 172.267 ms statement: UPDATE "stylesheet_cache"
SET "content" = REPLACE("content", '/uploads', '/../uploads'), "digest" = REPLACE("digest", '/uploads', '/../uploads'), "source_map" = REPLACE("source_map", '/uploads', '/../uploads'), "target" = REPLACE("target", '/uploads', '/../uploads')
WHERE "content" IS NOT NULL AND "content" LIKE '%/uploads%' OR "digest" IS NOT NULL AND "digest" LIKE '%/uploads%' OR "source_map" IS NOT NULL AND "source_map" LIKE '%/uploads%' OR "target" IS NOT NULL AND "target" LIKE '%/uploads%'
2021-04-02 18:03:55.952 UTC [52] LOG: received smart shutdown request
2021-04-02 18:03:57.185 UTC [52] LOG: background worker "logical replication launcher" (PID 79) exited with exit code 1
2021-04-02 18:03:57.189 UTC [74] LOG: shutting down
2021-04-02 18:03:57.308 UTC [52] LOG: database system is shut down
2021-04-02 18:04:00.354 UTC [47] LOG: starting PostgreSQL 13.2 (Debian 13.2-1.pgdg100+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 8.3.0-6) 8.3.0, 64-bit
2021-04-02 18:04:00.355 UTC [47] LOG: listening on IPv4 address "0.0.0.0", port 5432
2021-04-02 18:04:00.356 UTC [47] LOG: listening on IPv6 address "::", port 5432
2021-04-02 18:04:00.359 UTC [47] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
2021-04-02 18:04:00.375 UTC [66] LOG: database system was shut down at 2021-04-02 18:03:57 UTC
2021-04-02 18:04:00.380 UTC [47] LOG: database system is ready to accept connections
2021-04-02 18:13:27.137 UTC [47] LOG: received smart shutdown request
2021-04-02 18:13:27.980 UTC [47] LOG: background worker "logical replication launcher" (PID 72) exited with exit code 1
2021-04-02 18:13:27.982 UTC [67] LOG: shutting down
2021-04-02 18:13:28.009 UTC [47] LOG: database system is shut down
2021-04-02 18:13:31.497 UTC [45] LOG: starting PostgreSQL 13.2 (Debian 13.2-1.pgdg100+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 8.3.0-6) 8.3.0, 64-bit
2021-04-02 18:13:31.499 UTC [45] LOG: listening on IPv4 address "0.0.0.0", port 5432
2021-04-02 18:13:31.499 UTC [45] LOG: listening on IPv6 address "::", port 5432
2021-04-02 18:13:31.500 UTC [45] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
2021-04-02 18:13:31.515 UTC [67] LOG: database system was shut down at 2021-04-02 18:13:27 UTC
2021-04-02 18:13:31.520 UTC [45] LOG: database system is ready to accept connections
Nginx エラーログ
2021/04/02 18:01:06 [error] 69#69: *1 connect() failed (111: Connection refused) while connecting to upstream, client: 172.17.0.1, server: _, request: "GET /ask/ HTTP/1.0", upstream: "http://127.0.0.1:3000/ask/", host: "localhost:1357"
2021/04/02 18:13:38 [error] 64#64: *1 connect() failed (111: Connection refused) while connecting to upstream, client: 172.17.0.1, server: _, request: "POST /ask/message-bus/c734a550b6e54923aff3e0c6fdf1b014/poll HTTP/1.0", upstream: "http://127.0.0.1:3000/ask/message-bus/c734a550b6e54923aff3e0c6fdf1b014/poll", host: "localhost:1357", referrer: "https://privitevps.ga/ask/latest"
いつまでに完了する必要がありますか?
至急
このタスクに対して提示可能な予算(米ドル)はいくらですか?
提案に開かれています。アプローチと見積もりについて、ぜひ PM(プライベートメッセージ)でお知らせください。