このブログをabで速度はかってみたら以下のような絶望的な結果が出ました(´・ω・`)
1
2
3
4
|
Requests per second: 10.64 [#/sec] (mean)
Time per request: 9399.835 [ms] (mean)
Time per request: 93.998 [ms] (mean, across all concurrent requests)
Transfer rate: 541.31 [Kbytes/sec] received
|
まあ原因はproxyの設定失敗していたという恥ずかしい状況だったんですが、以下のように設定したら6倍速くなりました(`・ω・´)キリッ
vim /etc/nginx/nginx.confのhttpの部分に以下を追加
1
2
3
|
# proxy cache
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=czone:4m max_size=50m inactive=120m;
proxy_temp_path /var/tmp/nginx;
|
vim /etc/nginx/conf.d/vhost.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
|
upstream backend {
ip_hash;
server 127.0.0.1:9000;
}
server {
listen 9000;
server_name _;
location / {
root /var/www/html;
index index.php index.html index.htm;
#static files
if ( -f $request_filename) {
expires 30d;
break;
}
# request to index.php
if (!-e $request_filename) {
rewrite ^.+?(/wp-.*) $1 last;
rewrite ^.+?(/.*\.php)$ $1 last;
rewrite ^ /index.php last;
}
location ~\.php$ {
root /var/www/html;
fastcgi_pass unix:/tmp/php.socket;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/html/$fastcgi_script_name;
include fastcgi_params;
fastcgi_pass_header "X-Accel-Redirect";
fastcgi_pass_header "X-Accel-Expires";
}
}
}
server {
listen 80;
server_name www.polidog.jp;
access_log /var/log/nginx/www_access.log;
error_log /var/log/nginx/www_error.log;
location ~ .*\.(htm|html|jpg|JPG|gif|GIF|png|PNG|swf|SWF|css|CSS|js|JS|inc|INC|ico|ICO) {
root /var/www/html;
index index.html;
ssi on;
break;
}
location /wp-admin { proxy_pass http://backend;}
location /wp-login.php { proxy_pass http://backend;}
location / {
if ($http_cookie ~* "comment_author_|wordpress_(?!test_cookie)|wp-postpass_" ) {
set $do_not_cache 1;
}
if ($http_user_agent ~* “2.0\ 2MMP|240×320|400X240|AvantGo|BlackBerry|Blazer|Cellphone|Danger|DoCoMo|Elaine/3.0|EudoraWeb|Googlebot-Mobile|hiptop|IEMobile|KYOCERA/WX310K|LG/U990|MIDP-2.|MMEF20|MOT-V|NetFront|Newt|Nintendo\ Wii|Nitro|Nokia|Opera\ Mini|Palm|PlaySt
ation\ Portable|portalmmm|Proxinet|ProxiNet|SHARP-TQ-GX10|SHG-i900|Small|SonyEricsson|Symbian\ OS|SymbianOS|TS21i-10|UP.Browser|UP.Link|webOS|Windows\ CE|WinWAP|YahooSeeker/M1A1-R2D2|iPhone|iPod|Android|BlackBerry9530|LG-TU915\ Obigo|LGE\ VX|webOS|Nokia5800″) {
set $do_not_cache 1;
}
proxy_no_cache $do_not_cache;
proxy_cache_bypass $do_not_cache;
proxy_pass http://backend;
proxy_cache czone;
proxy_cache_key $scheme$proxy_host$uri$is_args$args;
proxy_cache_valid 200 10m;
}
}
|
あとはfastcgiの起動スクリプトをいじります。
以下のように変更してもらえれば大丈夫です。
vim /etc/initd.d/php-fastcgi
1
2
3
|
- daemon $spawnfcgi -a ${server_ip} -p ${server_port} -u ${server_user} -g ${server_group} -P ${pidfile} -C ${server_childs} -f ${php_cgi}
+ bind=/tmp/php.socket
+ daemon $spawnfcgi -s ${bind} -u ${server_user} -g ${server_group} -P ${pidfile} -C ${server_childs} -f ${php_cgi}
|
これで準備は完了。あとは再起動
1
2
|
# /etc/init.d/php-fastcgi restart
# /etc/init.d/nginx restart
|
んでもって結果はこんな感じです
1
2
3
4
|
Requests per second: 65.63 [#/sec] (mean)
Time per request: 1523.595 [ms] (mean)
Time per request: 15.236 [ms] (mean, across all concurrent requests)
Transfer rate: 3391.62 [Kbytes/sec] received
|
ちなみに以下のサイトを参考にさせていただきました。
WordPressを100倍速くする! MySQLの調整やnginx proxy cache
※環境はCentOSです。