さくらのVPS

nginxとは?

Nginxは、最近人気のWebサーバソフトです。Apacheの代わりに使われだしています。

nginx - Wikipedia

nginx(「エンジンエックス」と発音) は、軽量高性能なWebサーバ/リバースプロキシであり、同時に電子メール(IMAP/POP3)プロキシである。BSD系ライセンスでリリースされている。Unix系、Linux、BSD系、Mac OS X、Solaris、Microsoft Windows(Cygwinを使用)で動作する。

リンク

参考書

ハイパフォーマンスHTTPサーバ Nginx入門
Clement Nedelcu
アスキー・メディアワークス
2011-04-21
3150円

インストール

Nginxを、CentOSに、ソースコードからコンパイルして、手動でインストールする手順のまとめ

(参考)
CentOSにNginxをインストールする | HAPPY*TRAP
http://www.happytrap.jp/blogs/2012/02/23/8243/

ダウンロード

Nginx最新安定版(stable)を公式サイトからダウンロードします。

  1. Nginx最新安定版のバージョンを公式サイトで確認します。
    http://nginx.org/en/download.html
    (例) Stable version nginx-1.2.6
  2. 作業ディレクトリ(tmp)に移動します。
    $ cd /tmp
  3. 圧縮ファイルをダウンロードします。
    $ wget http://nginx.org/download/nginx-1.2.6.tar.gz
    (wgetコマンドがインストールされていない場合は、「sudo yum install wget」)
  4. ダウンロードしたファイルを解凍します。
    $ tar zxf nginx-1.2.6.tar.gz
  5. カレントディレクトリを移動します。
    $ cd nginx-1.2.6

コンパイル

  1. Nginx用のユーザーを作成します。
    $ sudo useradd -s/sbin/nologin -d/usr/local/nginx -M nginx
  2. Nginxに必要なライブラリをインストールします。
    (例では、必須ライブラリの他にHTTPSのコンテンツを処理するOpenSSLライブラリもインストールしています。)
    $ sudo yum install gcc
    $ sudo yum install pcre pcre-devel
    $ sudo yum install zlib zlib-devel
    $ sudo yum install openssl openssl-devel
  3. 使用するオプションを付けてconfigureを実行します。
    $ ./configure --prefix=/usr/local/nginx-1.2.6 --user=nginx --group=nginx --with-http_ssl_module --with-http_realip_module
  4. コンパイルして、インストールします。
    $ make
    $ sudo make install

シンボリックリンクの作成

  1. Nginxをバージョンアップするごとに異なるprefixを指定するので、変更をやりやすくするために、prefixのディレクトリを指すシンボリックリンクを作成します。
    ln -s /usr/local/nginx-1.2.6 /usr/local/nginx

自動起動スクリプト

Nginxをソースからインストールした場合は、起動スクリプトが作成されないので自作します。

  1. /etc/init.dにnginxのプログラム起動スクリプトのファイルを作成します。
    # vi /etc/init.d/nginx
  2. ファイル内容は、以下のようにします。
    #!/bin/sh
    #
    # nginx - this script starts and stops the nginx daemon
    # cf. http://www.happytrap.jp/blogs/2012/02/23/8243/
    #
    # chkconfig:   - 85 15
    # description:  Nginx is an HTTP(S) server, HTTP(S) reverse
    #               proxy and IMAP/POP3 proxy server
    # processname: nginx
    
    # Source function library.
    . /etc/rc.d/init.d/functions
    
    # Source networking configuration.
    . /etc/sysconfig/network
    
    # Check that networking is up.
    [ "$NETWORKING" = "no" ] && exit 0
    
    nginx="/usr/local/nginx/sbin/nginx"
    prog=$(basename $nginx)
    
    NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"
    
    lockfile=/usr/local/nginx/logs/nginx.lock
    
    start() {
        [ -x $nginx ] || exit 5
        [ -f $NGINX_CONF_FILE ] || exit 6
        echo -n $"Starting $prog: "
        daemon $nginx -c $NGINX_CONF_FILE
        retval=$?
        echo
        [ $retval -eq 0 ] && touch $lockfile
        return $retval
    }
    
    stop() {
        echo -n $"Stopping $prog: "
        killproc $prog -QUIT
        retval=$?
        echo
        [ $retval -eq 0 ] && rm -f $lockfile
        return $retval
    }
    
    restart() {
        configtest || return $?
        stop
        sleep 1
        start
    }
    
    reload() {
        configtest || return $?
        echo -n $"Reloading $prog: "
        killproc $nginx -HUP
        RETVAL=$?
        echo
    }
    
    force_reload() {
        restart
    }
    
    configtest() {
        $nginx -t -c $NGINX_CONF_FILE
    }
    
    rh_status() {
        status $prog
    }
    
    rh_status_q() {
        rh_status >/dev/null 2>&1
    }
    
    case "$1" in
        start)
            rh_status_q && exit 0
            $1
            ;;
        stop)
            rh_status_q || exit 0
            $1
            ;;
        restart|configtest)
            $1
            ;;
        reload)
            rh_status_q || exit 7
            $1
            ;;
        force-reload)
            force_reload
            ;;
        status)
            rh_status
        ;;
        condrestart|try-restart)
            rh_status_q || exit 0
                ;;
        *)
            echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
            exit 2
    esac
  3. 起動スクリプトに実行権限を付与します。
    $ sudo chmod +x /etc/init.d/nginx 
  4. 自動起動の設定をします。
    $ sudo chkconfig --add nginx
    $ sudo chkconfig nginx on
    これで、serviceコマンドでも起動・終了・再起動が実行できるようになります。
  5. 自動起動の設定(ランレベル)を確認します。
    $ sudo chkconfig --list nginx
    これで、
    nginx 0:off 1:off 2:on 3:on 4:on 5:on 6:off
    と表示されたらOKです。

基本操作

  • 設定ファイルの文法チェック
    $ sudo service nginx configtest
  • 起動
    $ sudo service nginx start
  • 終了
    $ sudo service nginx stop
  • 再起動
    $ sudo service nginx restart

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS