ホームページ > 運用・保守 > Nginx > Nginxをリバースプロキシサーバーとして構成するにはどうすればよいですか?

Nginxをリバースプロキシサーバーとして構成するにはどうすればよいですか?

百草
リリース: 2025-03-14 16:16:35
オリジナル
147 人が閲覧しました

Nginxをリバースプロキシサーバーとして構成するにはどうすればよいですか?

nginxをリバースプロキシサーバーとして構成するには、nginxをセットアップしてクライアントリクエストをバックエンドサーバーに転送する必要があります。これを達成するための段階的なガイドを次に示します。

  1. NGINXのインストール:NGINXがシステムにまだインストールされていない場合は、オペレーティングシステムに適したパッケージマネージャーを使用してインストールしてください。たとえば、ubuntuでは、次のコマンドを使用できます。

     <code>sudo apt-get update sudo apt-get install nginx</code>
    ログイン後にコピー
  2. nginx構成ファイルの編集:ほとんどのシステムのnginxのデフォルト構成ファイルは/etc/nginx/nginx.conf /nginx.confにあるか、 /etc/nginx/sites-available/ directory内にあります。逆プロキシをセットアップするには、構成ファイルを作成または編集する必要があります。
  3. 逆プロキシ:構成ファイルで、逆プロキシとして機能するサーバーブロックを定義します。以下は、 example.comからlocalhost:8080で実行されているバックエンドサーバーにリクエストを転送する例の構成です。

     <code>http { server { listen 80; server_name example.com; location / { proxy_pass http://localhost:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } }</code>
    ログイン後にコピー
    • proxy_pass :バックエンドサーバーのアドレスを指定します。
    • proxy_set_header :バックエンドサーバーが元のリクエストに関する正確な情報を受信するように、プロキシリクエストのヘッダーを設定します。
  4. NGINXのテストと再起動:構成ファイルを変更した後、構文エラーの構成をテストすることが重要です。

     <code>sudo nginx -t</code>
    ログイン後にコピー

    テストが成功した場合は、nginxを再起動して新しい構成を適用します。

     <code>sudo systemctl restart nginx</code>
    ログイン後にコピー

これらの手順に従うことにより、Nginxは逆プロキシとして機能し、指定されたバックエンドサーバーにリクエストを転送します。

nginxを逆プロキシとして使用することの利点は何ですか?

Nginxを逆プロキシとして使用すると、いくつかの利点があります。

  1. 負荷分散:NGINXは、複数のバックエンドサーバーに着信トラフィックを配布し、パフォーマンスと信頼性を向上させることができます。これは、交通量の多いアプリケーションに特に役立ちます。
  2. セキュリティ:仲介者として行動することにより、Nginxはバックエンドサーバーの存在と特性をマスクし、セキュリティを強化するのに役立ちます。また、SSL/TLS暗号化を適用して、クライアントとサーバー間で送信されるデータを保護することもできます。
  3. パフォーマンスの最適化:NGINXは、コンテンツをキャッシュして応答を圧縮し、サーバーの負荷を削減し、応答時間を改善できます。また、多くのアプリケーションサーバーよりも静的コンテンツをより効率的に処理します。
  4. スケーラビリティ:NGINXは、フロントエンドサービスに影響を与えずにバックエンドサーバーを追加または削除できるようにすることにより、アプリケーションのスケーリングに役立ちます。これにより、成長とメンテナンスの管理が容易になります。
  5. 高可用性:リクエストを健康的なバックエンドサーバーにルーティングし、フェールオーバーを管理することにより、NGINXはサービスのより高い可用性を確保できます。
  6. 柔軟性:NGINXは多数のプロトコルをサポートしており、WebSocketのプロキシ、ストリーミングなど、さまざまなユースケースに対して構成できます。

逆プロキシセットアップのNGINXパフォーマンスを最適化するにはどうすればよいですか?

逆プロキシセットアップでNginxパフォーマンスを最適化するには、次の戦略を検討してください。

  1. キャッシュを有効にする:Nginxのキャッシュ機能を使用して、頻繁にアクセスできるコンテンツを保存します。これにより、バックエンドサーバーの負荷を大幅に削減し、応答時間を改善できます。

     <code>proxy_cache_path /path/to/cache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m; proxy_cache my_cache;</code>
    ログイン後にコピー
  2. ワーカーのプロセスと接続を調整します:ワーカーのプロセスと接続の数を調整して、サーバーの機能と負荷に合わせます。

     <code>worker_processes auto; events { worker_connections 1024; }</code>
    ログイン後にコピー
  3. GZIP圧縮を使用します。GZIPを有効にして応答を圧縮し、帯域幅の使用量を削減し、ページの読み込み時間を改善します。

     <code>gzip on; gzip_vary on; gzip_proxied any; gzip_comp_level 6; gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml rss text/javascript;</code>
    ログイン後にコピー
  4. バッファリングの最適化:バッファサイズを構成して、大規模なリクエストと応答をより効率的に処理します。

     <code>proxy_buffers 16 16k; proxy_buffer_size 32k;</code>
    ログイン後にコピー
  5. 接続プーリングを実装します:KeepAlive接続を使用して、新しい接続を確立するオーバーヘッドを減らします。

     <code>keepalive_timeout 65; keepalive_requests 100;</code>
    ログイン後にコピー
  6. リソースの使用制限:NGINXのリソース制限機能を使用して、乱用を防ぎ、サーバーリソースの公正な使用を確保します。

     <code>limit_conn_zone $binary_remote_addr zone=addr:10m; limit_conn addr 10;</code>
    ログイン後にコピー

これらの最適化を実装することにより、Nginx Reverse Proxyセットアップのパフォーマンスを向上させることができます。

nginxを逆プロキシとして構成する際に、どのようなセキュリティ対策を実装する必要がありますか?

Nginxを逆プロキシとして構成する場合、セキュリティ対策を実装することが重要です。次の慣行を検討してください。

  1. SSL/TLS暗号化:SSL/TLS証明書を構成して、輸送中のデータを保護することにより、HTTPSを有効にします。 Let's Encyptのようなツールを無料の証明書に使用します。

     <code>server { listen 443 ssl; server_name example.com; ssl_certificate /path/to/cert.pem; ssl_certificate_key /path/to/key.pem; ssl_protocols TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers on; ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256'; }</code>
    ログイン後にコピー
  2. HTTP Strict Transport Security(HSTS) :HTTPS接続を実施して、プロトコルの格下げ攻撃を防ぎます。

     <code>add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;</code>
    ログイン後にコピー
  3. レートの制限:個々のIPアドレスからの要求率を制限することにより、ブルートフォース攻撃とDDOを保護します。

     <code>limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s; limit_req zone=one burst=5;</code>
    ログイン後にコピー
  4. セキュリティヘッダー:ヘッダーを追加して、コンテンツセキュリティポリシー(CSP)、Xフレームオプション、X-XSS-Protectionなどのセキュリティを強化します。

     <code>add_header X-Frame-Options "SAMEORIGIN"; add_header X-Content-Type-Options "nosniff"; add_header X-XSS-Protection "1; mode=block"; add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval';";</code>
    ログイン後にコピー
  5. サーバートークンを無効にする:nginxバージョン情報を非表示にして、情報の漏れを減らします。

     <code>server_tokens off;</code>
    ログイン後にコピー
  6. アクセス制御:IPアドレスまたはその他の基準に基づいて、サーバーの特定の部分へのアクセスを制限します。

     <code>location /admin { allow 192.168.1.0/24; deny all; }</code>
    ログイン後にコピー
  7. 定期的な更新:既知の脆弱性から保護するために、Nginxとすべての関連ソフトウェアを最新の状態に保ちます。

これらのセキュリティプラクティスに従うことにより、NGINXリバースプロキシ構成のセキュリティを大幅に強化できます。

以上がNginxをリバースプロキシサーバーとして構成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート