NGINX
Nginxをリバースプロキシとして使用し、HTTPSでLibreChatデプロイメントを保護するためのステップバイステップガイド
このガイドでは、HTTPS用のSSL/TLS証明書を使用してLibreChatのデプロイメントを保護し、Nginxをリバースプロキシとして設定し、ドメインを構成するための基本的な手順を説明します。
前提条件
- クラウドサーバー(例:AWS、Google Cloud、Azure、Digital Ocean)。
- 登録済みのドメイン名。
- クラウドサーバーへのターミナルアクセス。
- LibreChatをホスト上で直接実行する場合は、Node.js
v24.16.0および npmv11.16.0が必要です。
初期設定
ドメインをサーバーに向ける
証明書を取得する前に、ドメインをクラウドサーバーのIPアドレスに向けてください。DNSレコードが世界中に反映されるまで時間がかかる場合があるため、この手順はSSL証明書の設定に先立って行うべき基本的なステップです。
- ドメイン登録業者のコントロールパネルにログインします。
- DNS設定に移動します。
- ドメインをクラウドサーバーのIPアドレスに向ける
A recordを作成します。 - DNSの変更が世界中に反映されるまで待ちます(ドメインにpingを送信して確認できます:
ping your_domain.com)。
SSL/TLS証明書の取得
LibreChat アプリケーションを HTTPS で保護するには、SSL/TLS 証明書が必要です。Let's Encrypt では無料の証明書を提供しています:
-
Certbotをインストールする:
- Ubuntuの場合:
sudo apt-get install certbot python3-certbot-nginx - CentOSの場合:
sudo yum install certbot python2-certbot-nginx
- Ubuntuの場合:
-
証明書を取得する:
sudo certbot --nginxを実行して、Nginx用の証明書を自動的に取得およびインストールします。- 画面上の指示に従ってください。Certbotが情報を要求し、検証プロセスを完了させます。
- 成功すると、Certbotは証明書ファイルを保存します。
Nginxをリバースプロキシとして設定する
Nginxはリバースプロキシとして機能し、クライアントからのリクエストをLibreChatアプリケーションに転送します。デプロイには2つの選択肢があります:
オプション A: deploy-compose.yml Docker Compose を使用する(推奨)
deploy-compose.yml ファイルには Nginx コンテナが含まれており、Nginx の設定には client/nginx.conf ファイルを使用します。しかし、sudo certbot --nginx は証明書をホスト側の設定に抽出するため、その証明書を Docker コンテナに複製する必要があります。
client/nginx.confを、ご自身のドメインと証明書のパスに合わせて更新してください。deploy-compose.ymlのclientセクションを更新し、ホストから証明書ファイルをマウントするようにします:
- 実行中のインスタンスを停止する:
npm run stop:deployed - 変更を新しいGitブランチにコミットします。
- デプロイ済みインスタンスをリベースする:
npm run rebase:deployed
Option B: Dockerを使用しないホストベースのデプロイメント
Dockerを使用していない場合は、ホスト上で直接Nginxをインストールおよび設定することができます:
-
Nginxのインストール:
- Ubuntu:
sudo apt-get install nginx - CentOS:
sudo yum install nginx
- Ubuntu:
-
Nginxの起動:
sudo systemctl start nginx -
Nginx設定ファイルを開きます:
sudo nano /etc/nginx/sites-available/default -
ファイルの内容を以下に置き換えてください。その際、
your_domain.comをご自身のドメインに、app_portをアプリケーションのポート番号に置き換えるようにしてください。
- Nginxの設定を確認します:
sudo nginx -t - Nginxをリロードする:
sudo systemctl reload nginx
アプリケーションの実行
- アプリケーションのディレクトリに移動します:
- Docker Composeを使用してアプリケーションを起動します:
nginx を使用している場合の証明書の更新
上記の推奨されるオプションAを使用してnginxをセットアップした場合、以下の手順で証明書を更新してください:
- アプリケーションのディレクトリに移動します
- 実行中のDockerコンテナを停止する
- 証明書を更新する
- アプリケーションを再起動してください
注: certbot がホストの nginx を再起動する場合があります。その際は sudo pkill nginx で停止できます。
Web Application Firewall
Nginxは、OWASP Core Rule Set (CRS) を活用することで、Webアプリケーションファイアウォール (WAF) として機能するように構成できます。OWASP CRSは、一般的なWebアプリケーションの脆弱性や攻撃から保護するための堅牢なルールセットを提供します。NginxでOWASP CRSを使用することで、保護層が追加され、LibreChatデプロイメントのセキュリティを強化できます。
-
OWASP CRSをインストールする:
- Ubuntu:
sudo apt-get install nginx-modsecurity-crs
- Ubuntu:
-
NginxでModSecurityを有効にする:
-
Nginx設定ファイル(例:
/etc/nginx/nginx.conf)を開きます。 -
httpブロック内に以下の行を追加してください:
-
-
OWASP CRSの設定:
- OWASP CRSパッケージには通常、設定ファイル(例:
/etc/nginx/modsecurity.d/nginx-modsecurity.conf)が含まれており、要件に基づいてさまざまな設定やルールセットを調整できます。
- OWASP CRSパッケージには通常、設定ファイル(例:
-
Nginxをリロード:
sudo systemctl reload nginx
Nginx設定でOWASP CRSを有効にすることで、プロジェクトが提供する包括的なルールセットを活用し、SQLインジェクション、クロスサイトスクリプティング(XSS)、リモートファイルインクルージョンなど、さまざまなWebアプリケーションの脆弱性や攻撃を検知・緩和することができます。
静的ファイルのキャッシュと圧縮
LibreChatは現在、静的ファイルのキャッシュと圧縮をネイティブでサポートしています。NGINXを使用して圧縮を処理している場合は、冗長な処理を避けるためにLibreChat側の圧縮を無効にする必要があります。これを行うには、LibreChatの設定で DISABLE_COMPRESSION 環境変数を true に設定してください。
これにより、LibreChatが静的ファイルを圧縮するのを防ぎ、NGINXがより効率的に圧縮を処理できるようになります。
LibreChatにおける静的ファイルの取り扱いやキャッシュオプションの詳細については、Static File Handlingのドキュメントを参照してください。
このガイドはいかがでしたか?