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

Различные пулы php-fpm в одном виртуальном хосте nginx

Некоторое время я искал в Интернете, но безуспешно. Моя проблема в следующем:

Я хочу использовать разные пулы php-fpm в одном виртуальном хосте nginx в зависимости от характера запроса, но не могу найти способ настроить location ~ \.php$ {...} часть моей конфигурации vhost для поддержки двух разных рабочих пулов.

Единственное решение, которое я понял, - это перенаправление веб-запроса на другой сайт nginx.

заранее спасибо

Вы можете работать по следующему принципу:

set $upstream /path/to/defaultfpm-socket;

location /first {
    set $upstream /path/to/fpm1-socket;
}

location /second {
    set $upstream /path/to/fpm2-socket;
}

fastcgi_pass $upstream;

Итак, здесь мы устанавливаем $upstream переменную в сокет PHP5-FPM, который мы хотим использовать, в зависимости от местоположения (часть URI). Затем мы используем переменную с fastcgi_pass чтобы передать запрос этому экземпляру PHP5-FPM.

location правила могут использовать обычные правила сопоставления nginx, такие как сопоставление регулярных выражений, префиксов и т. д. Рекомендуется установить значение по умолчанию, чтобы запросы всегда анализировались.

Вам также необходимо включить в конфигурацию другие операторы FastCGI.