1. Nginx サービス基盤 Nginx (エンジン x) は、パフォーマンスの最適化のために特別に開発されました。メモリ使用量が少なく、安定性があり、システム リソースの消費量が少ないこと、同時接続の処理能力が高いこと (単一の物理サーバーで 5000 件の同時リクエストをサポート) が特徴です。実際、nginx の同時実行能力は、同じタイプの他の Web サーバーよりも優れています。中国本土で nginx を使用している Web サイトのユーザーには、Baidu、JD.com、Sina、NetEase、Tencent、Taobao などがあります。 IMAP/POP3/SMTP サービスも提供されます。 Nginx の利点: *** 多数の同時接続が可能** 次の図は、Nginx、Apache、lighttpd のパフォーマンス比較です。 これまで、Nginx の強力なパフォーマンスを強調するために多くのことを述べてきました。では、CentOS 7 をベースにした Nginx Web サイト サーバーを構築するにはどうすればよいでしょうか (仮想 Web ホストの構成を含む)? 引き続き、Nginx の構成と仮想マシンでのその適用について説明しましょう。 2. 準備: 1. CentOS 7 サーバー 2. CentOS 7 システム ディスク 3. 必要なソフトウェア パッケージは https://www.jb51.net/softs/25646.html から入手できます。 4. 公式ウェブサイト http://www.nginx.org/ からダウンロードすることもできます。 3. Nginx ウェブサイトの構築を開始します (システム ディスクをマウントし、必要な依存パッケージをインストールします)。 1. システム ディスクによって提供される必要な依存パッケージをインストールします。 2. Nginxをコンパイル、インストール、設定する [root@localhost media]# useradd -M -s /sbin/nologin nginx #システムユーザーを作成 [root@localhost media]# tar zxf nginx-1.12.0.tar.gz -C /usr/src #解凍 [root@localhost media]# cd /usr/src/nginx-1.12.0/ [root@localhost nginx-1.12.0]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module && 作成 && インストール #Nginx をコンパイルしてインストールする [root@localhost ~]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ #メインプログラムのリンクファイルを作成する Nginx サービスの起動、停止、リロードなどの操作をより便利にするために、Nginx サービス スクリプトを編集できます。スクリプトは次のようにコンパイルされます。 [root@localhost ~]# vim /etc/init.d/nginx #サービススクリプトを編集#!/bin/bash # chkconfig: -99 20 PROG="/usr/local/nginx/sbin/nginx" PIDF="/usr/local/nginx/logs/nginx.pid" ケース「$1」 始める) $PROG ;; 停止) kill -s QUIT $(cat $PIDF) ;; 再起動) $0 ストップ 0ドルからスタート ;; リロード kill -s HUP $(cat $PIDF) ;; *) echo "使用方法:$0 {開始 | 停止 | 再起動 | 再読み込み}" 出口1 エサック 終了 0 [root@localhost ~]# chmod +x /etc/init.d/nginx #実行権限を追加します[root@localhost ~]# chkconfig --add nginx #システムサービスとして追加します[root@localhost ~]# systemctl start nginx #スクリプトが正常に動作することを確認するためにNginxサービスを開始します[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf #Webサービスを最適化するために構成ファイルを調整します.............. worker_processes 2; #ワーカープロセスの数 #error_log logs/error.log; #エラーログファイルの場所 #error_log logs/error.log notice; #error_log ログ/error.log 情報; #pid logs/nginx.pid; #PID ファイルの場所 events { epoll を使用します。#パフォーマンスを向上させるために、even{ } にこの行を追加します。worker_connections 4096; 各プロセスは 4096 個の接続を処理します。 上記の最適化はグローバル設定に基づいて実装されます。各最適化の意味は次のとおりです。
3. ドメイン名に基づいて仮想ウェブホストを構築します。 1. HTTP 構成: Nginx の構成ファイルは、「http { }」区切りタグを使用して、アクセス ログ、http ポート、Web ディレクトリ、デフォルトの文字セット、接続の永続性、仮想 Web ホスト、PHP 解析、およびその他のグローバル Web サイト設定を含む HTTP サーバーを設定します。そのほとんどは、サブ区切りタグ「server { }」に含まれています。 「server {}」は特定の Web サイト設定を表します。 [root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf http { mime.types を含めます。 デフォルトタイプ アプリケーション/オクテットストリーム; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; #上記の 3 行の先頭にある "#" 記号を削除します access_log logs/access.log main; #アクセス ログの場所 sendfile on; 効率的なファイル転送モードを有効にします #tcp_nopush on; #キープアライブタイムアウト 0; keepalive_timeout 65; #接続キープアライブタイムアウト #gzip オン; サーバー{ listen 80; #Web サーバーのリスニング ポート。"ip address:port" の形式を使用できます。 server_name www.test1.com; #Web サイトのドメイン名 charset utf-8; #Web サイトのデフォルトの文字セット。先頭の "#" 記号を削除する必要があります。 access_log logs/test1.access.log main; #アクセス ログ ファイル名 location /status { #ステータス統計を有効にするには、場所 /status を追加します。アクセス場所は /status です。 stub_status on; #ステータス統計機能をオンにする access_log off; #この場所のログをオフにする} 位置 / { root /var/www/test1; #Web サイトのルート ディレクトリ index index.html index.php; #デフォルトのホームページ。PHP Web ページをサポートするには index.php に変更します} ; .......................... error_page 500 502 503 504 /50x.html; #内部エラーフィードバックページ location = /50x.html { #エラーページ構成ルートhtml; } } } 上記の構成では、Web サイト サービスのみが構築されます。複数のサービスを実行する場合は、構成ファイルの末尾に提供されているテンプレートをコピーして、「server{ }」構成に貼り付けることができます。構成ファイルには「{ }」が多すぎるため、エラーを回避するには、次のように元の「server{ }」にコピーする必要があります。 サーバー{ 聞く 80; サーバー名 www.test2.com; 文字セット utf-8; access_log ログ/test2.access.log メイン; 場所 / ステータス { stub_status オン; access_log オフ; } 位置 / { ルート /var/www/test2; インデックス index.html index.php; } } サーバー{ 聞く 80; サーバー名 www.test1.com; ............................. この時点で、仮想ホストが設定されており、サービスを再起動して有効にし、Webサーバーの正常な動作を確認する必要があります(DNSは自分で設定する必要があります) 4. アクセスステータス統計仮想ホストアプリケーション [root@localhost ~]# nginx -t #このコマンドを使用して、サービスを再起動する前に構成ファイルを確認します。 #設定ファイルにエラーがある場合は、エラーのある行が表示されます。 #すべてが正しければ、OK と表示されます。エラーがある場合、サービスを再起動してもエラーは報告されませんが、構成ファイルは有効になりません。 nginx: [emerg] /usr/local/nginx/conf/nginx.conf:44 に予期しない ";" があります #44行目にエラーがあることを示します nginx: 設定ファイル /usr/local/nginx/conf/nginx.conf のテストに失敗しました [root@localhost ~]# nginx -t #以下はokを示しており、問題がないことを示しています。 nginx: 設定ファイル /usr/local/nginx/conf/nginx.conf の構文は正常です nginx: 設定ファイル /usr/local/nginx/conf/nginx.conf のテストが成功しました # 次に、Web サイトのディレクトリとテスト ファイルを準備し、2 つの仮想 Web ホストのルート ディレクトリを作成し、テスト中に区別しやすいようにテスト ホームページを準備します [root@localhost named]# mkdir -p /var/www/test1 [root@localhost 名前]# mkdir -p /var/www/test2 [root@localhost の名前]# echo "www.test1.com" > /var/www/test1/index.html [root@localhost の名前]# echo "www.test2.com" > /var/www/test2/index.html クライアント認証: ① www.test1.comのホームページにアクセスします。 ② www.test1.com のステータス統計ページにアクセスします。 上記は以下を意味します。 アクティブ接続とは、現在アクティブな接続の数が 2 であることを意味します。 サーバーが処理された要求を受け入れるということは、処理された接続情報を示します。3 つの数字は、処理された接続が 3 つ、ハンドシェイクが 3 回成功し、処理された要求が 6 つあることを表します。 ① www.test2.comのホームページにアクセスします。 ② www.test2.com のステータス統計ページにアクセスします。 上記はアクセス状況統計と仮想ホストの応用である 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: MySQL で最大接続数を設定するためのヒントのまとめ
>>: React+Amapは緯度と経度をリアルタイムで取得し、住所を特定します
1 概要システム Centos8 では、httpd を使用してローカル Web サーバーを構築します...
外部アクセスポートをランダムにマップする -P フラグを使用すると、Docker は 49000 か...
目次序文問題を見つける解決する追記序文最近、 UIコンポーネントを作成する予定で、 vue 2.xと...
目次序文例まとめ序文Vue の親子コンポーネントは、props を通じて親コンポーネントの値を子コン...
Web アプリケーション クラス1. みんなのためにダウンまたは私だけのためにこのウェブサイトは、ウ...
質問:私のブログのエンコーディングは utf-8 です。ページを開くと空白になっていることもあります...
目次1. redo ログ (MySQL ストレージ エンジン InnoDB のトランザクション ログ...
Docker に TensorFlow 環境をすばやくインストールし、TensorFlow を使用し...
データ内に次のような特徴を持つ「 ' 」などの文字が含まれることがあります。 &# ...
目次2. カンマ演算子3. JavaScript Null 結合演算子 (??) 4. JavaSc...
チュートリアルシリーズMySQL シリーズ: MySQL リレーショナル データベースの基本概念My...
1. システムに必要な libaio ソフトウェアがインストールされていることを確認します。インスト...
目次序文1. forループ2. whileループとdo-whileループ3. forEach、map...
<br />構造と階層により複雑さが軽減され、読みやすさが向上します。記事やサイトが整理...
すべてのデータベースの合計サイズを照会する方法は次のとおりです。 mysql> informa...