• Linux nginx А как в nginx писать лог-файлы по разным HTTP статусам?
    Я нашёл, что с 1.7 можно сделать так:
    map $status $error4xx { ~^4\d\d$ 1; default 0; }
    map $status $error5xx { ~^5\d\d$ 1; default 0; }
    access_log /var/log/nginx/4xx.log combined if=$error4xx;
    access_log /var/log/nginx/5xx.log combined if=$error5xx;

    Или можно через location:
    error_page 400 /errors/4xx/400.html;
    error_page 403 /errors/4xx/403.html;
    error_page 408 /errors/4xx/408.html;
    error_page 401 405 406 407 409 410 411 412 413 414 415 416 417 /errors/4xx/4xx.html;

    error_page 500 /errors/5xx/500.html;
    error_page 501 /errors/5xx/501.html;
    error_page 502 /errors/5xx/502.html;
    error_page 503 /errors/5xx/503.html;
    error_page 504 /errors/5xx/504.html;

    location ^~ /errors/4xx/ {
    internal;
    alias /etc/nginx/errors/;
    access_log /var/log/nginx/4xx.log;
    }

    location ^~ /errors/5xx/ {
    internal;
    alias /etc/nginx/errors/;
    access_log /var/log/nginx/5xx.log;
    }

    Но это костыль. Есть ли более красивый вариант?

Replies (2)