Re: nginx, fastcgi и деплой на симлинках

Maxim Dounin mdounin на mdounin.ru
Чт Мар 21 14:08:12 UTC 2019


Hello!

On Thu, Mar 21, 2019 at 02:21:52PM +0300, Иван wrote:

> Здравствуйте!
> 
> Есть симлинк
> 
> /home/live -> /home/releases/live/1.2.9
> 
> при деплое он меняется на
> 
> /home/live -> /home/releases/live/1.2.10
> 
> а код продолжает работать версии 1.2.9 .
> 
> 
> Преполагаю, что должен помочь такой патч к конфигу nginx
> 
> location /live/ {
> 
> +               root /home/live;
>                  include fastcgi_params;
>                 
> -               fastcgi_param SCRIPT_FILENAME
> /home/live/register_user_new.php;
> +               fastcgi_param SCRIPT_FILENAME
> $realpath_root/register_user_new.php;
> }
> 
> Верно? Короче говоря, непосредственно указать путь в fastcgi_param
> симлинки кешируются, а с realpath_root - всегда актуальны?

Судя по симптомам - ваша наблюдаемая проблема в кэшировании кода 
на стороне fastcgi-бэкенда.

Добавление переменной $realpath_root - тут скорее всего 
действительно поможет, но вообще говоря она нужна для решения 
другой проблемы.  Смысл этой переменной в том, чтобы можно было 
избежать race condition при переключении на новый релиз сайта, и в 
рамках одного запроса использовался один и тот же путь.  В 
частности, переменная $realpath_root нужна, чтобы в php разные 
include-файлы подбирались от одной и той же версии сайта, а не от 
разных.

-- 
Maxim Dounin
http://mdounin.ru/


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