Nginx Webサイトサービスの構築


コンピュータとインターネット技術の盛んな発展に従って、各種のWebサイトは直接ユーザーに向かう中堅の力になって、各種のウェブサイトのサーバーのソフトウェアの中で、Apacheのほかに、1種の軽量級のHTTPサーバーのソフトウェア--Nginxがあって、その安定性、高効率の特性は次第に多くのユーザーに認められます.このブログでは、Nginx Webサイトサーバを構築し、ドメイン名ベースの仮想Webホストを構成します.
Nginxの基本構成
   NginxはロシアのIgor Sysoevが性能最適化のために開発したもので、その最も有名な利点はその安定性と低いシステム資源消費、およびHTTPの同時接続に対する高い処理能力(1台の物理サーバで30をサポートできる)である. 000~50 000個の同時要求).そのため、ソーシャルネットワーク、ニュース情報、電子商取引、仮想ホストなどのサービスを多く提供する企業がNginxを選んでWebサービスを提供している.
1.Nginxのインストール
    Nginxのインストールファイルは公式サイトからhttp://www.nginx.org/ダウンロード、以下は安定片1.6.0を例にして、Nginxのインストールと運行制御を紹介します
[root@localhost ~]# yum -y install pcre-devel zlib-devel            //Nginx     pcre、zlib       
[root@localhost ~]# useradd -M -s /sbin/nologin nginx               //    nginx     
[root@localhost ~]# tar zxf nginx-1.6.0.tar.gz -C /usr/src/
[root@localhost ~]# cd /usr/src/nginx-1.6.0/
[root@localhost nginx-1.6.0]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module
[root@localhost nginx-1.6.0]# make && make install   //  http_stub_status_module         ,            

[root@localhost nginx-1.6.0]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/     
[root@localhost nginx-1.6.0]# 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@localhost nginx-1.6.0]# nginx                           //    
[root@localhost nginx-1.6.0]# netstat -anpt | grep nginx
tcp        0      0 0.0.0.0:80              0.0.0.0:*        LISTEN      4614/nginx  

[root@localhost nginx-1.6.0]# killall -s HUP nginx           //    
[root@localhost nginx-1.6.0]# killall -s QUIT nginx          //    

2.Nginxサービススクリプトの作成
   Nginxサービスの起動、停止などの操作をより便利にするために、Nginxサービススクリプトを作成し、chkconfigとサービスツールを使用して管理することができます.
[root@localhost ~]# vim /etc/init.d/nginx      
#!/bin/bash
# chkconfig: 2345 99 20
# description: Nginx Service Control Script
PROG="/usr/local/nginx/sbin/nginx"
PIDF="/usr/local/nginx/logs/nginx.pid"
case "$1" in
  start)
   netstat -anplt |grep ":80" &> /dev/null && pgrep "nginx" &> /dev/null
   if [ $? -eq 0 ]
   then
     echo "Nginx service already running."
   else
     $PROG -t &> /dev/null
     if [ $? -eq 0 ] ; then
       $PROG
       echo "Nginx service start success."
     else
     $PROG -t
     fi
   fi
   ;;
  stop)
   netstat -anplt |grep ":80" &> /dev/null && pgrep "nginx" &> /dev/null
   if [ $? -eq 0 ]
   then
    kill -s QUIT $(cat $PIDF)
    echo "Nginx service stop success." 
   else
    echo "Nginx service already stop"
   fi
  ;;
  restart)
    $0 stop
    $0 start
    ;;
  status)
   netstat -anplt |grep ":80" &> /dev/null && pgrep "nginx" &> /dev/null
   if [ $? -eq 0 ]
   then
     echo "Nginx service is running."
   else
     echo "Nginx is stop."
   fi
  ;;
  reload)
   netstat -anplt |grep ":80" &> /dev/null && pgrep "nginx" &> /dev/null
   if [ $? -eq 0 ]
   then
    $PROG -t &> /dev/null
    if [ $? -eq 0 ] ; then
      kill -s HUP $(cat $PIDF)
      echo "reload Nginx config success."
    else
      $PROG -t
    fi
   else
      $PROG -t
    fi
   else
    echo "Nginx service is not run." 
   fi
    ;;
  *)
   echo "Usage: $0 {start|stop|restart|reload}"
   exit 1
esac

[root@localhost ~]# chmod +x /etc/init.d/nginx 
[root@localhost ~]# chkconfig --add nginx           // nginx       

2.プロファイルnginx.conf
    グローバル構成、I/Oイベント構成、HTTP構成の3つの大きなブロックを含むNginxサーバのプライマリプロファイル
(1)グローバル構成
[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf
#user  nobody;                     //    
worker_processes  1;               //      ,   CPU            
#error_log  logs/error.log;        //         
#pid        logs/nginx.pid;        //PID     

(2)I/Oイベント構成
    epollモデルを使用してパフォーマンスを向上させることを推奨します.プロセスの接続数は実際のニーズに応じて決まり、一般的に10000以下です(デフォルト1024)
events {
    use epoll;                   //  epoll  
    worker_connections  1024;    //      1024   ,        
}

(3)HTTP構成
   アクセスログ、HTTPポート、Webディレクトリ、デフォルト文字セット、接続保持などを含む
Nginxのアクセス状態統計
    NginxはHTTP_を内蔵STUB_現在のWebアクセス状況をフィードバックするSTATUSステータス統計モジュール.コンパイルインストール時にモジュールを起動する必要があるほか、nginx.confプロファイルを変更し、アクセス先を指定してstub_を開く必要があります.status構成
[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf
……      
    server {
        location /status {        //      /status
          stub_status on;         //        
          access_log off;         //          
}
……      
}

[root@localhost ~]# service nginx restart

    ブラウザでNginxサーバの/status Webサイトにアクセスすると、現在の統計が表示されます.
仮想Webホストの構成
    前述のApacheサービスでは,ドメイン名ベース,IPアドレスベース,ポート番号ベースの3種類の仮想Webホストについて紹介した.一方、Nginxを使用して仮想Webホストサーバを構築する場合、各仮想Webサイトには独立した「server{}」構成項目があり、サイト名、IPアドレス、ポート番号を個別に指定できます.以下、ドメイン名ベースの仮想Webホストを構成します.
(1)DNSサーバの構築
    ここではもう一つの方法を採用し、hostsファイルを修正し、ネイティブでドメイン名を解析するしかありません.
[root@localhost ~]# vim /etc/hosts
127.0.0.1       www.ysf.com
127.0.0.1       www.yangshufan.com

(2)サイトカタログ及びテストファイルの準備
[root@localhost ~]# mkdir /var/www/ysf
[root@localhost ~]# mkdir /var/www/yangshufan
[root@localhost ~]# echo www.ysf.com > /var/www/ysf/index.html
[root@localhost ~]# echo www.yangshufan.com > /var/www/yangshufan/index.html

(3)nginx.confプロファイルの調整
[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf
http {
……      
    server {
        listen       80;
        server_name  www.ysf.com;
        charset utf-8;
        #access_log  logs/host.access.log  main;
        location / {
            root   /var/www/ysf;
            index  index.html index.htm;
        }
     }
    server {
        listen       80;        
        server_name  www.yangshufan.com;
        location / {
            root   /var/www/yangshufan;
            index  index.html index.htm;
        }
    }  
}   
[root@localhost ~]# service nginx reload

(4)仮想Webホストへのアクセス
    ブラウザで2つのサイトに別々にアクセスし、テストファイルが表示されると、仮想Webホストの構成が成功したことを示します.