manipulando 404s no nginx em vez do servidor upstream

2

Para ter mais desempenho, gostaríamos de permitir que o nginx detectasse 404s antes de passá-lo para o servidor apache upstream. Ambos os servidores possuem os mesmos arquivos.

Mais informações

Temos uma configuração popular de veiculação de conteúdo estático no nginx e o uso do upstream do apache para veicular conteúdo dinâmico. Atualmente, sincronizamos o php com os arquivos estáticos com os nós nginx dos nós do apache upstream. Os mesmos arquivos estão localizados nas duas camadas. Nós simplesmente servimos apenas arquivos estáticos do nginx.

Atualmente, todas as solicitações não estáticas vão para o servidor apache (como pretendido anteriormente). No entanto, percebi que o nginx deve ser capaz de verificar a existência de um arquivo .php antes de decidir passá-lo no upstream. Isso significaria lidar com uma solicitação com muito mais eficiência.

Eu tenho mexido com uma combinação de arquivos try_files, então, eventualmente, se os blocos para encontrar uma solução, mas eu não tive sucesso. Por favor, informe.

Obrigado!

    
por comb 07.06.2011 / 09:24

1 resposta

1

Existe uma solução bastante simples:

server {
    listen      0.0.0.0;
    server_name fooo.org;
    access_log  /var/log/nginx/access.log main;

    root /var/www/fooo.org;

    location / {
        # If the file exists as a static file serve it directly without
        # running all the other rewite tests on it
        if (-f $request_filename) { 
            break; 
        }

        proxy_pass http://127.0.0.1:8080;
    }
}

por favor, marque +1 se ajudou;) obrigado

    
por 08.10.2011 / 07:11