Nginx is a reverse high availability web/proxy server for HTTP, HTTPS, SMTP, POP3, and IMAP protocols. It is free and open source software, simplified licensed by BSD. It is used by a large list of websites known as WordPress, Netflix, Hulu, GitHub, Ohloh, SourceForge, TorrentReactor and some parts of Facebook.
Nginx は、HTTP, HTTPS, SMTP, POP3 および IMAP プロトコルのための高可用性 Web/プロキシサーバです。フリーのオープンソースソフトウエアであり、BSD ライセンスです。WordPress, Netflix, Hulu, GitHub, Ohloh, SourceForge, TorrentReactor および Facebook の一部など、多くのサイトで利用されています。
NGINX は、apache の代替えとなるソフトウエアです。
このガイドでは、ウェブサーバの変更方法を段階的に説明します。ここでは、CentOS 6 のマシンで、Apache を使っていて、NGINX を使いたい場合を示します。
最初に Apache を停止します。
service httpd stop
リポジトリを保存するためにディレクトリを作成します。
mkdir /root/temp ; cd /root/temp
http://nginx.org/packages/ から、NGINX の全リポジトリをダウンロードします。この例では、CentOS 6 を選択しています。
wget http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
リポジトリを追加します。
rpm -i nginx-release-centos-6-0.el6.ngx.noarch.rpm
NGINX をインストールします。
yum install nginx
サービスを開始します。
service nginx start
正しく動作しているか確認します。ブラウザを開き、http://<IP_HOST>/index.html と入力したら、“Welcome to nginx!” が表示されるはずです。
/var/www/html/ ディレクトリとそのサブディレクトリのオーナーとグループを変更します。
chown -R nginx:nginx /var/www/html/
/etc/nginx/nginx.conf ファイルはデフォルトのままとするか、希望のパラメータ調整をします。
user  nginx;
worker_processes  5;
error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;
events {
    worker_connections  4096;
}
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;
    #tcp_nopush     on;
    keepalive_timeout  65;
    #gzip  on;
    include /etc/nginx/conf.d/*.conf; 
    ## en conf.d/ The line where we will add the server configuration.
}
/etc/nginx/conf.d/ に pandora.conf ファイルを作成し、その他すべての .conf ファイルは削除するか移動します。
nano /etc/nginx/conf.d/pandora.conf
サーバの設定は次の通りです。
upstream php_backend {
    server unix:/tmp/php5-fpm.sock;  ## Socket path. 
}
server{
    listen 80;
    server_name 192.168.70.197; ## Higly recommend to set private server ip, 
                              ## otherwise if you set it to "localhost" or "127.0.0.1"  
                              ## you could get some errors.
    root /var/www/html;
    index index.php index.html;
    access_log   logs/pandora.log  combined; 
    client_max_body_size 500M;
        location ~* \.(png|jpg|jpeg|gif|ico)$ {
           expires 720h;
           log_not_found on;
        }
        location ~* \.(css|js|xml)$ {
           gzip_static on;
           expires 720h;
           log_not_found on;
        }
        location ~ \.php$ {
                include fastcgi_params;
                fastcgi_buffer_size 128k;
                fastcgi_buffers 4 256k;
                fastcgi_busy_buffers_size 256k;
                fastcgi_intercept_errors on;
                fastcgi_pass   php_backend;
                fastcgi_index  index.php;
                fastcgi_param  REQUEST_METHOD   $request_method;
                fastcgi_param  CONTENT_TYPE     $content_type;
                fastcgi_param  CONTENT_LENGTH   $content_length;
                fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
                fastcgi_param  QUERY_STRING     $query_string;
        }
        location / {
                try_files $uri $uri/ $uri.php?$args;
        }
}
ログディレクトリを作成します。
mkdir /etc/nginx/logs/
nginx が正しく設定できているか確認します。
nginx -t
新たな設定を読み込ませるために nginx を再起動します。
service nginx restart
NGINX に関する詳細は、以下を確認してください。
php-fpm をインストールします。(CentOS のリポジトリから取得できます)
yum install php-fpm
以下のライブラリがインストールされているか確認し、されていなければインストールします。
yum install php-mbstring php-gd php-ldap php-snmp graphviz php-mysql
/etc/php-fpm.d/www.conf ファイルを編集します。
;listen = 127.0.0.1:9000 listen = /tmp/php5-fpm.sock ; #Socket path. ;listen.allowed_clients = ;listen.owner = nobody ;listen.group = nobody ;listen.mode = 0666 listen.owner = nginx listen.group = nginx listen.mode = 0666 user = nginx group = nginx
/var/lib/php/session ディレクトリのオーナーとグループを変更します。
chown nginx:nginx /var/lib/php/session
APC をインストールします。
yum install php-pecl-apc
APC の設定は /etc/php.d/apc.ini で変更できます。処理の高速化のために重要なパラメータは以下の通りです。
; The size of each shared memory segment, with M/G suffix apc.shm_size=64M
サービスを開始します。
service php-fpm start
システム起動時に nginx と php-fpm が起動するようにし、Apache は起動しないようにします。
chkconfig httpd off chkconfig nginx on chkconfig php-fpm on
nginx, php-fpm およびコンソールのログ(/var/www/html/pandora_console/pandora_console.log)を確認してください。
/var/log/nginx/access.log /var/log/nginx/error.log
/var/log/php-fpm/www-error.log /var/log/php-fpm/error.log