ホームページ  >  記事  >  運用・保守  >  Nginx の安全な展開: サーバー構成から始める

Nginx の安全な展開: サーバー構成から始める

WBOY
WBOYオリジナル
2023-06-10 08:24:141170ブラウズ

Nginx は、高いパフォーマンス、安定性、スケーラビリティを提供できる優れた HTTP およびリバース プロキシ サーバーです。 Nginx サーバーのセキュリティと安定性を確保するには、安全な展開が必要です。この記事では、サーバーの構成から始めて、Nginx のインストール、構成、最適化、セキュリティの展開について詳しく紹介します。

  1. サーバー構成

Nginx をインストールする前に、サーバーの基本構成を実行する必要があります。 Linux オペレーティング システムを使用し、最新のシステム アップデートとセキュリティ パッチをインストールすることをお勧めします。さらに、サーバーには、Nginx サーバーの高いパフォーマンスを確保するために十分なメモリとプロセッサ能力が必要です。

  1. Nginx のインストール

Nginx は、公式 Web サイト https://nginx.org/en/download.html から最新の安定バージョンをダウンロードできます。ダウンロードが完了したら、次のコマンドを使用してインストールします。

tar -zxvf nginx-1.18.0.tar.gz
cd nginx-1.18.0
./configure
make
sudo make install
  1. Nginx の構成

Nginx のメイン構成ファイルは /etc/nginx/nginx にあります。会議変更を行う場合は、必ず元のファイルをバックアップしてください。以下は、デフォルトの Nginx 構成ファイルの例です。

user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

events {
    worker_connections 1024;
}

http {
    include /etc/nginx/mime.types;
    default_type application/octet-stream;
    log_format main '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    access_log /var/log/nginx/access.log main;
    sendfile on;
    # ...
    server {
        listen 80 default_server;
        listen [::]:80 default_server;
        root /usr/share/nginx/html;
        index index.html;
        server_name _;
        location / {
            try_files $uri $uri/ =404;
        }
        # ...
    }
}

このファイルには、ユーザーとワーカーのプロセス構成、ログ形式、アクセス ログの場所、ファイル転送構成、およびデフォルトの HTTP サーバー ブロックが含まれています。 listen ディレクティブは、サーバー ブロックがリッスンするポートを定義します。この例のポート 80 はデフォルトのサーバー ポートとして定義されており、ユーザーがブラウザの IP アドレスを使用してアクセスすると、Nginx はサーバー上のデフォルト ファイルにアクセスし、それをクライアントに返します。

  1. Nginx 構成の最適化

Nginx のパフォーマンスは、サーバー構成やネットワーク環境などの多くの要因に依存します。 Nginx のパフォーマンスを最適化するには、次のことを実行できます:

  • Nginx のキャッシュ機能を有効にします。これにより、CSS ファイル、JavaScript ファイル、画像ファイルなどの静的ファイルに対するリクエストの応答時間が短縮されます。標準の HTTP キャッシュ メカニズムを例として、構成例を次に示します。
http {
    proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m inactive=60m;
    server {
        location ~* .(png|jpg|jpeg|gif|ico)$ {
            proxy_cache my_cache;
            proxy_pass http://backend;
        }
    }
}
  • worker_processes の数を増やすことでパフォーマンスを向上させます。 worker_processes の数は、サーバーで使用可能な CPU コアの数と同じである必要があります。たとえば、サーバーに 4 つの CPU コアがある場合、worker_process は 4 に設定する必要があります。
  • TCP の nopush および nolay 機能を有効にします。これにより、TCP プロトコルの遅延とパケット損失が軽減されます。以下は設定例です。
http {
    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    # ...
}
  1. 安全な導入

Nginx のセキュリティは非常に重要です。安全な展開のためのいくつかの提案を次に示します。

  • HTTPS プロトコルを使用して、データ転送、特に銀行口座情報やクレジット カード番号などの機密データ転送を暗号化します。証明書を使用すると、データ送信が送信中に改ざんされたり盗まれたりすることがなくなります。
  • Web サイトを DDoS 攻撃から保護するためにリクエスト レートを制限します。たとえば、Nginx の limit_req_zone ディレクティブを使用してリクエスト レートを設定します。
http {
    limit_req_zone $binary_remote_addr zone=my_zone:10m rate=1r/s;
    server {
        location / {
            limit_req zone=my_zone burst=5 nodelay;
            # ...
        }
    }
}
  • 悪意のあるファイルのアップロードを防ぐために、ファイルのアップロード サイズを制限します。 Nginx の client_max_body_size ディレクティブを使用して、ファイル サイズの制限を設定します。
http {
    client_max_body_size 10M;
    server {
        location /upload {
            # ...
        }
    }
}
  • システム内の不要なサービスを終了してください。たとえば、サーバーがメール サービスを必要としない場合は、リスクを軽減するためにメール サービスをオフにする必要があります。
  • セキュリティを確保するために、システムとソフトウェアを定期的に更新します。アップデートは、リリース後すぐにサーバーに適用する必要があります。

この記事では、Nginx のインストール、構成、最適化、安全な展開について詳しく紹介します。これらの手順により、Nginx サーバーの高いパフォーマンス、セキュリティ、安定性を確保できます。

以上がNginx の安全な展開: サーバー構成から始めるの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。