nginxをリバースプロキシサーバーとして構成するには、nginxをセットアップしてクライアントリクエストをバックエンドサーバーに転送する必要があります。これを達成するための段階的なガイドを次に示します。
NGINXのインストール:NGINXがシステムにまだインストールされていない場合は、オペレーティングシステムに適したパッケージマネージャーを使用してインストールしてください。たとえば、ubuntuでは、次のコマンドを使用できます。
<code>sudo apt-get update sudo apt-get install nginx</code>
/etc/nginx/nginx.conf
/nginx.confにあるか、 /etc/nginx/sites-available/
directory内にあります。逆プロキシをセットアップするには、構成ファイルを作成または編集する必要があります。逆プロキシ:構成ファイルで、逆プロキシとして機能するサーバーブロックを定義します。以下は、 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
:バックエンドサーバーが元のリクエストに関する正確な情報を受信するように、プロキシリクエストのヘッダーを設定します。NGINXのテストと再起動:構成ファイルを変更した後、構文エラーの構成をテストすることが重要です。
<code>sudo nginx -t</code>
テストが成功した場合は、nginxを再起動して新しい構成を適用します。
<code>sudo systemctl restart nginx</code>
これらの手順に従うことにより、Nginxは逆プロキシとして機能し、指定されたバックエンドサーバーにリクエストを転送します。
Nginxを逆プロキシとして使用すると、いくつかの利点があります。
逆プロキシセットアップでNginxパフォーマンスを最適化するには、次の戦略を検討してください。
キャッシュを有効にする: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>
ワーカーのプロセスと接続を調整します:ワーカーのプロセスと接続の数を調整して、サーバーの機能と負荷に合わせます。
<code>worker_processes auto; events { worker_connections 1024; }</code>
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>
バッファリングの最適化:バッファサイズを構成して、大規模なリクエストと応答をより効率的に処理します。
<code>proxy_buffers 16 16k; proxy_buffer_size 32k;</code>
接続プーリングを実装します:KeepAlive接続を使用して、新しい接続を確立するオーバーヘッドを減らします。
<code>keepalive_timeout 65; keepalive_requests 100;</code>
リソースの使用制限:NGINXのリソース制限機能を使用して、乱用を防ぎ、サーバーリソースの公正な使用を確保します。
<code>limit_conn_zone $binary_remote_addr zone=addr:10m; limit_conn addr 10;</code>
これらの最適化を実装することにより、Nginx Reverse Proxyセットアップのパフォーマンスを向上させることができます。
Nginxを逆プロキシとして構成する場合、セキュリティ対策を実装することが重要です。次の慣行を検討してください。
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>
HTTP Strict Transport Security(HSTS) :HTTPS接続を実施して、プロトコルの格下げ攻撃を防ぎます。
<code>add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;</code>
レートの制限:個々のIPアドレスからの要求率を制限することにより、ブルートフォース攻撃とDDOを保護します。
<code>limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s; limit_req zone=one burst=5;</code>
セキュリティヘッダー:ヘッダーを追加して、コンテンツセキュリティポリシー(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>
サーバートークンを無効にする:nginxバージョン情報を非表示にして、情報の漏れを減らします。
<code>server_tokens off;</code>
アクセス制御:IPアドレスまたはその他の基準に基づいて、サーバーの特定の部分へのアクセスを制限します。
<code>location /admin { allow 192.168.1.0/24; deny all; }</code>
これらのセキュリティプラクティスに従うことにより、NGINXリバースプロキシ構成のセキュリティを大幅に強化できます。
以上がNginxをリバースプロキシサーバーとして構成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。