Discourse不具合対応

https://meta.discourse.org/t/discourse-preview-not-working/67584/46

SSLリバースプロキシー使用時にプレビュー用スクリプトをhttpでロードしてしまう為セキュリティエラーが発生。nginxの設定を修正します。

Docker上のDiscourseコンテナ内にアクセスします。

$cd /var/discourse

$sudo ./launcher enter your_discourse_container_name

your_discourse_container_nameはcontainersフォルダ内の.ymlを除外した名称です。
nginxのdiscourse設定ファイルを編集します。

#vi /etc/nginx/conf.d/discourse.conf

location @discourseの箇所の

proxy_set_header X-Forwarded-Proto $thescheme;

proxy_set_header X-Forwarded-Proto https;

に書換えます。

location @discourse {
  limit_conn connperip 20;
  limit_req zone=flood burst=12 nodelay;
  limit_req zone=bot burst=100 nodelay;
    add_header Referrer-Policy 'no-referrer-when-downgrade';
    proxy_set_header Host $http_host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto https;
    proxy_pass http://discourse;
  }

最後にnginxの設定をリロードします。nginxの再起動は必要ありません。

#service nginx reload

上記の対応をしても問題解決しない場合、mod_pagespeedに起因する可能性があります。
Discourseに適用されているApacheまたはNginxのVirtual Hostsの設定内でmod_pagespeedを無効にします。

ModPagespeed unpluggedを追加

<VirtualHost *:80>
  DocumentRoot /www/example2
  ServerName www.example2.org
  ModPagespeedMapRewriteDomain cdn.example2.org *example.org
  # Don't want combine_css here
  ModPagespeed unplugged
</VirtualHost>

参考サイト

https://www.modpagespeed.com/doc/configuration
https://www.modpagespeed.com/doc/config_filters.html

ついでに以下の箇所もアンコメント(一般的なJavaScriptライブラリをサーバからでなくGoogleから読取るようにします)

    # Certain common JavaScript libraries are available from Google, which acts
    # as a CDN and allows you to benefit from browser caching if a new visitor
    # to your site previously visited another site that makes use of the same
    # libraries as you do.  Enable the following filter to turn on this feature.
    #
    ModPagespeedEnableFilters canonicalize_javascript_libraries

閲覧数の小数点が “。” になっている不具合。日本語ローカライズに起因。
js.number.format.separator“。” から “.” に置換えます。

設定—>カスタマイズ—>Text
number_format

docker_manager "Currently Upgrading…"アップグレードエラー

<対策>

./launcher enter app
rails c
$redis.keys('upgrade:*').each{|key| $redis.del key }