Nginx プロキシ マネージャーのインストール - 2 分間のセットアップ ガイド
現在、サービスは 192.168.1.50:8080 のような醜いアドレスに存在しています。 Nginx Proxy Manager は、それらを無料の HTTPS を使用して app.yourdomain.com のようなクリーンな名前に変換します。これは 1 つの Docker Compose ファイルとともにインストールされ、手書きの構成ファイルの代わりに単純な Web パネルから管理されます。
📑章
- リバース プロキシの役割 - すべてのサービスを 1 つのドアで利用できる
- 始める前に必要なもの - Docker、ドメイン、到達可能なポート
- 何かをインストールする前に、ドメイン DNS がサーバーを指すようにする
- フォルダーと docker-compose.yml ファイルを作成します
- 1 つのコマンドで Nginx Proxy Manager を起動する
- 最初のログイン - 誰もが間違える管理者アカウントの手順
- フィールドごとに最初のプロキシ ホストを作成する
- 無料の Lets Encrypt HTTPS 証明書を取得し、強制 SSL を有効にする
📋 概要とステップバイステップガイド
始める前に必要なもの
Nginx Proxy Manager (NPM) が機能するには、3 つのことが必要です。まず、Docker と Docker Compose がすでにインストールされて動作している Linux サーバーまたは PC です。NPM は、通常のプログラムとしてではなく、コンテナーとして実行されます。 2 番目は、すべてのサービスが独自のサブドメインを取得するため、DNS を編集できるドメイン名です。第三に、ルーターまたはクラウド ファイアウォールは、ポート 80 および 443 をこのマシンに転送できる必要があります。
まずドメイン DNS をサーバーに向けます
NPM はトラフィックを名前でルーティングし、Lets Encrypt はマシンを指していると思われる名前に対してのみ証明書を発行します。そのため、その上に何かを構築する前に名前を解決する必要があります。レジストラまたは DNS ホストで、A レコード を追加します。名前はサブドメインの単語のみ (app など)、値はサーバーのパブリック IP アドレスです。すべてのサービスは独自のレコードを取得し、すべてが同じ IP を指すことができます。NPM は後でサービスを名前で分離します。テスト中に 300 秒などの短い TTL を設定すると、間違いが数時間ではなく数分で消えます。
続行する前に証明してください。名前が外部ネットワーク (たとえば、Wi-Fi がオフの携帯電話) からパブリック IP に解決されることを確認してください。壊れた DNS に対して証明書を要求すると、Lets Encrypt の試行が無駄になり、失敗が繰り返されると、数時間にわたってレート制限が行われる可能性があります。順序は重要です。DNS が最初、プロキシ ホストが 2 番目、証明書が 3 番目です。
フォルダーと作成ファイルを作成する
サーバー上に NPM 用のフォルダーを作成し、その中に以下のファイルを docker-compose.yml という名前で保存します。この 1 つのファイルでインストールが完了します。イメージ名は公式コミュニティイメージです。ポート 80 と 443 はパブリック ドア、ポート 81 は管理パネルで、2 つのボリュームはセットアップ全体が存在する場所です。./data にはすべてのプロキシ ホストが含まれるデータベースが保持され、./letsencrypt には証明書が保持されます。これら 2 つのフォルダーを失うと、セットアップ全体が失われます。実行中にそれらをバックアップしてください。
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
- '80:80'
- '443:443'
- '81:81'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
restart: until-stopped 行は、再起動後に NPM を自動的に戻します。
Nginxプロキシマネージャーを起動する
そのフォルダー内から start コマンドを実行します。 Docker はイメージをダウンロードし、バックグラウンドでコンテナを起動します。
docker compose up -d
実行中であることを確認します。
docker ps
コンテナーがポート 80、443、および 81 でリストされているのが表示されます。小規模サーバーでは、データベースの作成中に最初の起動に 1 ~ 2 分かかります。コンテナーが再起動を繰り返す場合、ログにはその理由がわかりやすい言葉で表示されます。
docker compose logs
再起動ループは十中八九、ホスト上の他の何かによってすでに使用されているポートです。通常は古い Web サーバーがまだ実行されています。
最初のログイン - すぐに管理者アカウントを保護します
独自のネットワーク上のブラウザで管理パネルを開きます。
http://your-server-ip:81
最初の 1 分でこれを実行してください。ビルドに応じて、NPM は、既知の初回ログイン管理者の詳細を自分の電子メールと強力なパスワードに置き換えるように要求するか、デフォルト アカウントのない新しいビルドでは、最初に管理ページを開いた人が管理者を作成します。どちらの場合でもルールは同じです。コンテナーの起動時に、他に何かを作成する前に独自の管理者アカウントを設定し、実際のメールボックス (証明書の問題について対処する NPM メール) を使用します。
最初のプロキシ ホストを作成する
NPM でホスト → プロキシ ホスト → プロキシ ホストの追加 を開き、フォームに「この名前はその内部サービスに使用されます」という 1 つの文として入力します。
ドメイン名: app.yourdomain.com - ステップ 2 で取得した正確なパブリック名。すでにサーバーに解決されている必要があります。
スキーム: ほとんどのホームおよびオフィス アプリの http。スキームは、訪問者が使用するものではなく、NPM と内部サービスの間の接続を記述します。NPM はドアで公開暗号化を処理します。内部アプリ自体が HTTPS を提供する場合にのみ、ここで https を選択します。
転送ホスト名 / IP: サービスの内部アドレス (例: 192.168.1.50)。
転送ポート: サービスが実際にリッスンするポート。たとえば、8080 - 80 や 443 ではありません。それらは NPM のドアであり、サービスのドアではありません。
一般的なエクスプロイトのブロック をオンにして保存します。ブラウザで名前を開いてすぐにテストします。理想的には、Wi-Fi をオフにして携帯電話から実際のパブリック パスをテストします。
localhost が間違っています (NPM のコンテナー内で、localhost は NPM 自体を意味します)。公開ポートを持つサーバーの LAN IP を使用するか、両方のコンテナーを同じ Docker ネットワーク上に配置してコンテナー名を使用します。無料の Lets Encrypt HTTPS 証明書を取得する
これは、手順 6 のプレーン ホストがすでに動作している後でのみ実行してください。壊れたホスト上の HTTPS では、証明書付きの壊れたホストが提供され、障害を探す場所が 2 倍になります。同じプロキシ ホストを開き、[SSL] タブに移動し、SSL 証明書を新しい SSL 証明書の要求に設定し、SSL 強制とHTTP/2 サポートを有効にして、Lets Encrypt の利用規約に同意して保存します。サイトをリロードします。ブラウザには https に南京錠が表示されるはずです。
仕組み: Lets Encrypt は、パブリック インターネットのポート 80 経由でサーバーにワンタイム トークン (HTTP-01 チャレンジ) を表示するよう要求することで、名前を制御していることを証明します。これが、ユーザーを指す DNS と到達可能なポート 80 が交渉不可能である理由です。どちらかが失敗すると、リクエストは失敗し、エラーはセットアップに発生し、Lets Encrypt にエラーが発生することはありません。 強制 SSL は、すべての http 訪問者を自動的に https にリダイレクトします。これがないと、暗号化されていないドアが暗号化されたドアの横に開いたままになります。
🏷️トピック検索変数とキーワード
🎙️ 全文転写 — タップして展開します
__TOK_34__
__TOK_35__
__TOK_36__
❓ よくある質問
このチュートリアルは完全に無料で実行できますか?
__TOK_37__
初心者でもこのガイドに従うことができますか?
__TOK_38__
行き詰まった場合はどこに質問すればよいですか?
__TOK_39__