Настройка Nginx и Apache, для отдачи запросов к PHP apache
В общем это вторая часть статьи о настройке апача и nginx. В данной статье мы настроим эту связку, так, что бы апач получал только запросы к php, а все остальное делал наш nginx.
Как же отдавать Apache ТОЛЬКО запросы к php? Есть несколько вариантов как это сделать, начнем с того, который описывается в офф документации.
server {
listen server.example.com;
server_name server.example.comlocation / {
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/;
Но писать вручную все расширения долго..хм да и все написать проблематично, поэтому наш конфиг Nginx будет выглядеть так:
server {
listen server.example.com;
server_name server.example.comlocation / {
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, а все остальное обрабатывает apache.
Так же есть и еще один вариант:
server {
listen one.example.com;
server_name one.example.comlocation / {
root /usr/local/www/server.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;
}
}



