Как же отдавать 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;
}
}
