Nginxは、パフォーマンスを最適化するために特別に開発されています。その最大の利点は、安定性とシステムリソースの消費量が少ないこと、およびhttp同時接続の処理能力が高いことです。1つの物理サーバーで20,000〜50,000の同時要求をサポートできます。ソーシャルネットワーキング、ニュース情報、eコマース、仮想ホスティングなどのサービスを提供する多くの企業が、Webサービスを提供するためにNginxを選択しています。現在、中国本土のnginx Webサイトのユーザーには、Sina、Netease、Tencentが含まれ、有名なマイクロブログPlurkもnginxを使用しています。 。
ApacheとNginxの違い:[https://blog.51cto.com/14227204/2435423](https://blog.51cto.com/14227204/2435423)
Nginxのインストールを開始します。
1.準備:
Centos7システムとCD
ソフトウェアパッケージをコンパイルしてインストールします:[https://pan.baidu.com/s/1-GaLSYxt4fP5R2gCVwpILA](https://pan.baidu.com/s/1-GaLSYxt4fP5R2gCVwpILA)**抽出コード:kph5 **
公式サイト[https://nginx.org/](https://nginx.org/)からもダウンロードできます。
2. Nginx Webサイトの構築を開始します:
必要な依存関係パッケージをインストールし、現在のhttpdサービスをアンインストールします(そうでないことが確実な場合は、省略できます)。
[ root@mysql yum.repos.d]# yum -y erase httpd
[ root@mysql /]# yum -y install pcre-devel zlib-devel #必要な依存関係をインストールする
Nginxを最適化するためのコンパイル、インストール、および構成:
[ root@mysql /]# useradd -M -s /sbin/nologin nginx #Nginxはデフォルトでは誰も実行しないため、専用のユーザーアカウントを作成することをお勧めします
[ root@mysql /]# tar zxf nginx-1.12.0.tar.gz -C /usr/src/[root@mysql /]# cd /usr/src/nginx-1.12.0/[root@mysql nginx-1.12.0]# ./configure --prefix=/usr/local/nginx --user=nginx \
>- - group=nginx --with-http_stub_status_module && make && make install
[ root@mysql /]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ #コマンドで簡単に使用できるリンクファイルを作成する
Nginx操作制御:
1、 構成ファイルを確認してください
[ root@mysql /]# nginx -t #構成ファイルを確認します。OKまたは成功が表示されれば、問題はありません。
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
2、 Nginxを開始および停止します
[ root@mysql /]# nginx #起動
[ root@mysql /]# killall -s HUP nginx #再起動オプション-■HUPは同等です-1[root@mysql /]# killall -s QUIT nginx #オプションを閉じる-■QUITはと同等です-3
**注:最小限にインストールされたcentos 7には、デフォルトでkillallコマンドがインストールされていません。「yum-yinstallpsmisc」**を使用できます。
Nginxサービスの開始、停止、再読み込み、およびその他の操作をより便利にするために、Centosシステムの管理習慣に沿ったNginxサービススクリプトを作成できます。
[ root@mysql /]# vim /etc/init.d/nginx
#! /bin/bash
# chkconfig:-9920
PROG="/usr/local/nginx/sbin/nginx"
PIDF="/usr/local/nginx/logs/nginx.pid"case"$1"in
start)
$PROG
;;
stop)
kill -s QUIT $(cat $PIDF);;
restart)
$0 stop
$0 start
;;
reload)
kill -s HUP $(cat $PIDF);;*)
echo "USAGE:$0 {start | stop | restart | reload}"
exit 1
esac
exit 0[root@mysql /]# chmod +x /etc/init.d/nginx //許可された[root@mysql /]# chkconfig --add nginx //システムサービスとして追加[root@mysql /]# systemctl start nginx //Nginxを起動します
[ root@mysql /]# vim /usr/local/nginx/conf/nginx.conf
...................
# user nobody;//実行中のユーザー
worker_processes 1;//作業プロセスの数
# error_log logs/error.log;//エラーログファイルの場所
# error_log logs/error.log notice;
# error_log logs/error.log info;
# pid logs/nginx.pid;//PIDファイルの場所
events {
use epoll;//epollモデルを使用してパフォーマンスを向上させる
worker_connections 4096;//プロセスあたり4096の接続}
上記の最適化はグローバル構成に基づいて実装されており、各最適化の意味は次のとおりです。
1、 worker_processes:ワーカープロセスの数を表します。サーバーに複数のCPUまたはマルチコアプロセッサがある場合は、CPUコアの総数を参照して、ワーカープロセスの数を指定できます。特定の意味は、worker_connections構成アイテムに反映されます。
2、 worker_connections:この構成アイテムは、各プロセスによって処理される接続を指定します。通常は10000未満(デフォルトは1024)であり、上記のワーカープロセス数の構成アイテムに関連付けられます。たとえば、ワーカープロセスの数が8の場合、各プロセスプロセスは4096の接続、Nginxがサービスを提供できるようにする接続の数は通常30,000を超えています(4096 * 8 = 32768)。もちろん、サーバーハードウェアやネットワーク帯域幅などの物理的条件のパフォーマンスに依存します。
ドメイン名に基づいて仮想Webホストを構築します:
HTTP構成:
Nginx構成ファイルは、「http {}」マークを使用して、アクセスログ、httpポート、Webページディレクトリ、デフォルトの文字セット、接続保持、仮想Webホスト、php解析、およびその他のグローバルWebサイト設定を含むHTTPサーバーを設定します。その一部は、サブ定義タグ「server {}」に含まれています。 「サーバー{}」は特定のWebサイト設定を表します。
[ root@mysql /]# vim /usr/local/nginx/conf/nginx.conf
................... コンテンツの一部を省略
http {
include mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '//これらの3行を削除します# '$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';
access_log logs/access.log main;//アクセスログの場所
sendfile on;//効率的なファイル転送モードを有効にする
# tcp_nopush on;
# keepalive_timeout 0;
keepalive_timeout 65;//接続保持タイムアウト
# gzip on;
server {//Webサービス監視構成
listen 80;//リスニングアドレスとポート
server_name www.test1.com;//サイト名FQDN
charset koi8-r;//Webページのデフォルトの文字セット
access_log logs/host.access.log main;
location /{//ルートディレクトリの構成
root html;//インストールディレクトリを基準にした、Webサイトのルートディレクトリの場所
index index.html index.php;//デフォルトのホームページ、インデックスページ}
error_page 500502503504/50x.html;//内部エラーフィードバックページ
location =/50x.html {//エラーページの構成
root html;}
上記の構成は、Webサイトサービスを構築するためのものです。複数のサービスを実行する場合は、構成ファイルに「{}」が多すぎるため、構成ファイルの最後にあるテンプレートをコピーして「server {}」構成に貼り付けることができます。エラーを回避するには、次のように元の「サーバー{}」にコピーする必要があります。
[ root@mysql /]# vim /usr/local/nginx/conf/nginx.conf
server {
listen 80;
server_name www.test1.com;
charset utf-8;
access_log logs/host.access.log main;
location /{
root /var/www/test1;
index index.html index.php;}
location /status {
stub_status on;
access_log off;}}
server {
listen 80;
server_name www.test2.com;
charset utf-8;
access_log logs/host.access.log main;
location /{
root /var/www/test2;
index index.html index.php;}
この時点で仮想ホストの構成が完了し、サービスを再起動して構成を有効にします。DNSは自動的に構成されます。次のブログ投稿を参照してください: [https://blog.51cto.com/14227204/2384462](https://blog.51cto.com/14227204/2384462)
[ root@mysql /]# nginx -t #サービスを再開する前に、確認することをお勧めします
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[ root@mysql /]# systemctl restart nginx
[ root@mysql named]# mkdir -p /var/www/test1 #ウェブサイトのルートディレクトリを作成する
[ root@mysql named]# mkdir -p /var/www/test2
[ root@mysql named]# echo www.test1.com >/var/www/test1/index.html #テストファイルを作成する
[ root@mysql named]# echo www.test2.com >/var/www/test2/index.html
クライアントは検証を開始します:
現在のステータス情報を表示します。
別のドメイン名をテストします。
Recommended Posts