Como registrar solicitações nginx feitas para um local específico em um arquivo diferente?

7

Eu tenho um nginx agindo como um proxy na frente de um back-end e quero separar as solicitações feitas para um local específico para um arquivo separado.

Ainda assim, as solicitações devem ir para o mesmo servidor de back-end, mas não quero vê-las dentro do log de acesso principal.

Também não quero especificar todas as coisas do proxy_ duas vezes.

server {
    ...
    access_log  /var/log/nginx/jira.access.log full;
    error_log  /var/log/nginx/jira.error.log;
    client_max_body_size 150m;        

    location /special/ {
        }

    location / {

            # many lines of config params for proxy_...
            proxy_pass   http://dowa-02.example.com:8080;
            ...
    }
}
    
por sorin 12.04.2013 / 16:35

1 resposta

6

UPD

A diretiva hmmm ... access_log tem um "recurso".

As solicitações são registradas em um contexto de um local em que o processamento é finalizado. Isso pode ser diferente do local original, se ocorrer um redirecionamento interno durante o processamento da solicitação.

Em caso de try_files , o redirecionamento interno. Tente alterar try_files para include & remover o local nomeado.

FIM DE UPD

Para não repetir muitas vezes "proxy_ stuff", você pode usar a include diretiva , por exemplo. Mas try_files e a localização nomeada são muito melhores:)

server {
    ...
    access_log  /var/log/nginx/jira.access.log full;
    error_log  /var/log/nginx/jira.error.log;
    client_max_body_size 150m;

    location /special/ {
        try_files $uri @backend;
        access_log /var/log/nginx/special.access.log full;
    }

    location / {
        try_files $uri @backend;
    }

    location @backend {
            # many lines of config params for proxy_...
            proxy_pass   http://dowa-02.example.com:8080;
            ...
    }
}
    
por 12.04.2013 / 18:21

Tags