Как стать автором
Обновить

Связка Nginx+Apache, как отдавать Apache только запросы к PHP?

Время на прочтение2 мин
Количество просмотров2.1K
Была поставлена задача: сделать отказоустойчивый и производительный веб-сервер. В интернете можно найти большое количество документации по настройке связки Nginx+Apache, всю технологию описывать нет смысла. Идея состоит в том, что легковесный Nginx должен отдавать весь статический контент (картинки, архивы и т.п.), запросы на генерацию динамического контента отдаються тяжеловесному индейцу Apache. Такая связка разгружает сервер и сейчас используется почти повсеместно.

Как же отдавать Apache ТОЛЬКО запросы на PHP, а все остальное обрабатывать NGINX`ом?

В официальной документации, как и во всей остальной делают так:

server {
listen one.example.com;
server_name one.example.com

location / {
proxy_pass http://127.0.0.1/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}

location ~* \.(jpg|jpeg|gif|html)$ {
root /spool/www;
access_log off;
expires 30d;
}
}


т.е. перечисляют все форматы файлов которые будет обрабатывать NGINX, все остальное улетает через proxy_pass http://127.0.0.1/. Перечислить все возможные варианты расширений невозможно. Немного поколдовав с регулярным выражением получаем вот что:

server {
listen one.example.com;
server_name one.example.com

location / {
proxy_pass http://127.0.0.1/;

proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr

}

location ~* \.(?!(php|php5|phps)$)[^.]*[^\/]$ {
root /usr/local/www/one.example.com/;
}


т.е. обработка всех файлов которые НЕ оканчиваются на .php,.php5,phps или адрес НЕ заканчивается на "/ " отдается NGINX, php и корни обрабатывает индеец.

upd: lomik предложил более рациональное решение:
server {
listen one.example.com;
server_name one.example.com

location / {
root /usr/local/www/one.example.com/;
index index.php index.html index.htm;
}

location ~ \.php {
proxy_pass http://127.0.0.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
Теги:
Хабы:
Всего голосов 33: ↑17 и ↓16+1
Комментарии31

Публикации

Истории

Ближайшие события