Назад | Перейти на главную страницу

обработка 404 на nginx вместо вышестоящего сервера

Чтобы быть более производительными, мы хотели бы позволить nginx перехватывать ошибки 404, прежде чем передавать их вышестоящему серверу apache. На обоих серверах есть одинаковые файлы.

Больше информации

У нас есть популярная установка для обслуживания статического контента на nginx и использования восходящего потока apache для обслуживания динамического контента. В настоящее время мы синхронизируем php вместе со статическими файлами с узлами nginx из вышестоящих узлов apache. На обоих слоях находятся одинаковые файлы. Мы просто обслуживаем только статические файлы из nginx.

В настоящее время все нестатические запросы отправляются на сервер Apache (как предполагалось ранее). Однако я понял, что nginx должен иметь возможность проверять наличие файла .php, прежде чем принимать решение о его передаче в апстрим. Это означало бы, что обработка запроса будет намного более эффективной.

Я возился с комбинацией try_files, а затем, в конце концов, блокирует поиск решения, но я не добился успеха. Пожалуйста, порекомендуйте.

Спасибо!

Есть довольно простое решение:

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;
    }
}

пожалуйста +1 если помогло;) спасибо