さくらVPS nginx 構築&設定メモ
とりあえずサーバに Apache を入れたものの、せっかく勉強がてら借りているさくら VPS なので nginx に挑戦してみました。 さくら VPS 契約後のほぼ自分用セットアップメモ第三弾です。
1. nginx のインストール
最新版は公式のレポジトリにあるのでまずはリポジトリを追加します。
vim /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/6/$basearch/
gpgcheck=0
enabled=1
yumでインストールします
yum install nginx
2. php-fpm のインストールと設定
nginx で PHP を動かすためには php-fpm (FastCGI) が必要になります。
前回で PHP5.6 の remi レポジトリでインストールしているため、php-fpm も同様に remi リポジトリを参照してインストールします。
yum --enablerepo=remi install php-fpm
インストール後、php-fpm の設定ファイルを変更します。
vim /etc/php-fpm.d/www.conf
-listen = 127.0.0.1:9000
+listen = /var/run/php-fpm/php-fpm.sock
-;listen.owner = nobody
+listen.owner = nginx
-;listen.group = nobody
+listen.group = nginx
+user = nginx
+group = nginx
+pm.max_children = 15
+pm.start_servers = 5
+pm.min_spare_servers = 2
+pm.max_spare_servers = 5
※litenは 127.0.0.1:9000 から変更します。Unixドメインソケットの方が高速に動作するためです。
設定ファイル保存後、サービスを起動します。
/etc/init.d/php-fpm start
さらに次回から自動起動するように設定しておきます。
chkconfig php-fpm on
3. 稼働中の Apache の停止
既に稼働中のウェブサーバ(Apache)のサービスと止めておきます。
/etc/init.d/httpd stop
自動起動もオフにします。
chkconfig httpd off
4. nginx の設定
nginx の設定ファイルを変更します。パフォーマンス設定はほとんど参考サイトの写しになりますが…
vim /etc/nginx/nginx.conf
-user nginx;
+user nginx nginx;
-worker_processes 1;
+worker_processes auto;
+worker_rlimit_nofile 100000;
+pid /var/run/nginx.pid;
events {
worker_connections 1024;
+ multi_accept on;
+ use epoll;
}
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;
+ access_log off;
+ error_log /var/log/nginx/error.log crit;
+ server_tokens off;
sendfile on;
- #tcp_nopush on;
+ tcp_nopush on;
+ tcp_nodelay on;
- keepalive_timeout 65;
+ keepalive_timeout 10;
+ client_header_timeout 10;
+ client_body_timeout 10;
+ reset_timedout_connection on;
+ send_timeout 10;
+ limit_conn_zone $binary_remote_addr zone=addr:5m;
+ limit_conn addr 100;
- #gzip on;
+ gzip on;
+ gzip_http_version 1.0;
+ gzip_disable "msie6";
+ gzip_proxied any;
+ gzip_min_length 1024;
+ gzip_buffers 4 8k;
+ gzip_comp_level 6;
+ gzip_static on;
+ gzip_types text/plain
+ text/css
+ text/xml
+ text/javascript
+ application/x-javascript
+ application/xml
+ application/xml+rss
+ application/javascript
+ application/json;
+ open_file_cache max=100000 inactive=20s;
+ open_file_cache_valid 30s;
+ open_file_cache_min_uses 2;
+ open_file_cache_errors on;
+ fastcgi_cache_path /var/cache/nginx/fscgi levels=1:2 keys_zone=fscgi:10m inactive=10m;
+ fastcgi_cache_key "$scheme://$request_method$host$request_uri";
+ server {
+ listen 80 default_server;
+ server_name _;
+ access_log off;
+ return 444;
+ }
include /etc/nginx/conf.d/*.conf;
}
各ドメイン毎の設定を /etc/nginx/conf.d/ 以下に作成します。
vim /etc/nginx/conf.d/www.example.com.conf
server {
listen 80;
server_name www.example.com;
root /path/to/public_html;
access_log /path/to/logs/access.log;
error_log /path/to/logs/error.log;
charset utf-8;
index index.php index.html;
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location ~* \.(gif|jpg|png|svg|swf|jpeg)$ {
log_not_found off;
access_log off;
expires 3d;
}
location ~* \.ico$ {
log_not_found off;
access_log off;
expires max;
}
location ~* \.(css|js)$ {
charset UTF-8;
access_log off;
expires 1d;
}
location ~ /\. {
deny all;
log_not_found off;
access_log off;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
include fastcgi_params;
}
}
nginx を起動します。
service nginx start
ついでに次回から自動起動するように設定します。
chkconfig nginx on
参考サイト
- http://fujitaka.net/20131114/nginx-wordpress-migration-1/
- http://sourceforge.jp/magazine/12/09/12/0517235
- http://kzy52.com/entry/2014/12/01/212911
- http://cloudrop.jp/wordpress/more_tuning_on_nginx
- http://nodejs.osser.jp/server/nginx-max-performance/
- http://qiita.com/monkick@github/items/610d1435d812beb853e2
- http://server-setting.info/centos/apache-nginx-3-setting-wordpress.html
- http://qiita.com/puttyo_bubu/items/5bf554ef2790f6435c32
- http://d.hatena.ne.jp/ohnishiakira/comment/20110215/nginx
- http://qiita.com/ksworks/items/cbc7b73c62c5e115d830
- http://sfpgmr.hatenablog.jp/entry/nginxのfast-cgi-cacheを使ってみる
- http://server-setting.info/centos/nginx-fastcgi-cache.html