discourse/docker ..? で nginx の設定を直接更新するにはどうすればよいですか

ウェブテンプレートファイル内で、nginx設定ファイルテンプレートを更新する(置換ステートメント)手順を見つけました。
nginx設定にセクション全体を追加する方法はありませんか?

discourse/shared内の/uploadsフォルダはnginxからアクセス可能です。新しいフォルダ/photosを追加したいです。
直接的な方法(discourse推奨の方法)はありますか?

なぜそうしたいのか説明していただけますか?

いずれにしても、「Photos」はDiscourseにアップロードできます。画像のアップロードと最適化はすでにDiscourseに組み込まれています。

おそらく間違った例を挙げたのかもしれません。私が知りたいのは、元のnginx設定にどのようにアクセスし、新しいマッピングをフォルダに追加したり、その他のことをしたりするために、セクション全体を追加できるかということです。それは可能ですか?それとも推奨されませんか?

外部のnginxサーバーをインストールして、すべてのリンクをdocker nginxにリダイレクトさせて、自分のことをすることができます。

この設定を編集する同様の手法が、以前のこのウィキ投稿からのアドバイスで役立つかもしれません。

(以前のこのウィキ投稿から抜粋:Set up Let’s Encrypt with multiple domains / redirects

「非常にシンプルです。app.yml のフックセクションに以下のようなものを追加してください。

ステップ 2 - discourse.conf

ステップ 1 に加えて、DISCOURSE_HOSTNAME 以外のものに対して http から https へのリダイレクトを正しく行うために nginx に変更が必要です。

    - replace:
        filename: "/etc/nginx/conf.d/discourse.conf"
        from: /return 301 https.+/
        to: |
          return 301 https://$host$request_uri;

また、web.ssl.template.yml が追加するリライトを削除する必要があります。これは DISCOURSE_HOSTNAME のみを強制し、現在は他にもドメインがあるためです!

    - replace:
        filename: "/etc/nginx/conf.d/discourse.conf"
        from: /gzip on;[^\\}]+\\}/m
        to: |
          gzip on;
          add_header Strict-Transport-Security 'max-age=31536000'; # 証明書を1年間記憶し、このドメインのHTTPSに自動的に接続します

はい、テンプレートファイル内にこれらの指示が見つかりました。
検索と置換ではなく、新しいセクションを追加する指示はありませんか?

工夫が必要になると思います。

なぜこの追加フォルダが必要なのか教えていただけませんか?同様のニーズを持っていた人がいるかもしれませんが、想定されている解決策が唯一の方法ではない可能性があります。

「いいね!」 1

それは悪い例だと言ったんです。さまざまなソリューションで追加のフォルダを管理できます。これまでのところ問題はありません。
それでも、nginx構成にまったく新しいセクションを追加できるようにしたいのです。もしそうする必要があるなら、どうすればよいのか知りたいだけです。

提案したようなパターンマッチングは可能でしょうか。ファイル末尾のパターンを、変更を末尾に追加したものと同じものに置き換えます。

そう思いました。
もしかしたら、新しく追加されたセクションのために、この目的で定義された魔法のフィールドがあるのではないかと思っていました。
気にしないでください。あなたの提案に基づいて対応できると思います。

「いいね!」 1

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.