nginxでof shared memory zone “czone” conflicts with already declared

nginxで画像をキャッシュしよー、と思ってググったら、この記事が出てきた・・。弊社じゃんか

WordPressを100倍速くする! MySQLの調整やnginx proxy cache

というわけで書いてあるとおりにやってみた。


設定も無事に終え、設定が正しく書かれているかどうか以下のコマンドを実行してみた。

% service nginx configtest
nginx: [emerg] the size 10485760 of shared memory zone "czone" conflicts with already declared size 0 in /etc/nginx/nginx.conf:42

nginx: configuration file /etc/nginx/nginx.conf test failed

そしたらなんとエラーですよっ。
なんど見返しても、上のブログ記事に書いてある通りな気がするのに。

冷静にエラー文を読んで見る。
なんかczoneがconflictsとか書いてある。つまり、、、?
英語が単語レベルでしか読めないのでこの程度ですね。

nginx.confのhttp部分はこう書いた(省略)

http{
    include /etc/nginx/vhosts.d/*.conf;

    proxy_cache_path /var/cache/nginx/abc.net levels=1:2 keys_zone=czone:10m max_si
ze=50m inactive=3d;
    proxy_temp_path  /var/cache/nginx/tmp;
}

vhosts.dの中にある設定ファイルにserver{}部分が書いてある。

「うーん、なんでだ。。もしや宣言の順番が・・・?」
というプログラマ的第6感により、以下のようにproxy_系のやつと、includeの順番を入れ替えた。

http{
    proxy_cache_path /var/cache/nginx/abc.net levels=1:2 keys_zone=czone:10m max_si
ze=50m inactive=3d;
    proxy_temp_path  /var/cache/nginx/tmp;

    include /etc/nginx/vhosts.d/*.conf;
}

そしたら無事に動きましたとさ/(^o^)\

英語のエラー文は読みましょう。
しかし読めない。

nginxの構文もよくわからない。

タイトルとURLをコピーしました