Re: fastcgi_pass и proxy_pass, различия

Валентин Бартенев ne at vbart.ru
Tue Oct 16 08:43:57 UTC 2012


On Tuesday 16 October 2012 12:24:49 Andrey Semenoff wrote:
> Добрый день!
> 
> Подскажите пожалуйста, в чем различие в работе nginx + php-fpm с такими
> локейшнами
> 
> location / {
> 
> >     proxy_pass 127.0.0.1:9000;
> 
>     proxy_ ...
> 
> }
> 
> или
> 
> > location / {
> > 
> >     fastcgi_pass 127.0.0.1:9000;
> >     fastcgi_...
> > 
> > }
> 
>  т.е. я не могу понять при использовании php-fpm, какую лучше директиву
> использовать fastcgi_ или proxy_

proxy_* - это директивы модуля ngx_http_proxy_module, само название
которого говорит за себя: он предназначен для реверс-проксирования
запросов и позволяет передавать запросы другому HTTP(S) серверу.

http://nginx.org/ru/docs/http/ngx_http_proxy_module.html


fastcgi_* - директивы модуля ngx_http_fastcgi_module, реализующего
интерфейс FastCGI для связи с приложением или сервером приложений
работающим по этому интерфейсу. Одним из примеров такого сервера
приложений является php-fpm.

http://nginx.org/ru/docs/http/ngx_http_fastcgi_module.html


Исходя из этого, очевидно, что совместно с php-fpm вы можете использовать
только fastcgi_pass. Попытка передать демону php-fpm запрос по протоколу
HTTP с помощью директивы proxy_pass закончится ошибкой.

--
Валентин Бартенев
http://nginx.com/support.html
http://nginx.org/en/donation.html


Подробная информация о списке рассылки nginx-ru