Приветствую. 1) Закомментируйте в файле fastcgi_params параметр SCRIPT_FILENAME , если еще не сделали этого 2) fastcgi_param SCRIPT_FILENAME $document_root/index.php; замените $document_root на $realpath_root fastcgi_param SCRIPT_FILENAME $realpath_root/index.php;
Почитать про переменную можно тут http://nginx.org/ru/docs/http/ngx_http_core_module.html И как выше советовали почитайте про php realpath cache чтобы было понимание. 3) > # /var/www/html указывает на /var/www/stable , переключаемся на current >rm /var/www/html; ln -s /var/www/current/ /var/www/html Я бы переделал чуть по другому. ln -s path_to_latest_release /var/www/html_tmp mv -Tf /var/www/html_tmp /var/www/html 28 ноября 2017 г., 20:34 пользователь Илья Шипицин <[email protected]> написал: > > > 28 ноября 2017 г., 20:52 пользователь Иван <[email protected]> > написал: > >> Здравствуйте! >> >> >> >> nginx 1.12.2, debian 8, php-fpm (5.6) >> >> # nginx -V >> nginx version: nginx/1.12.2 >> built by gcc 4.9.2 (Debian 4.9.2-10) >> built with OpenSSL 1.0.1t 3 May 2016 >> TLS SNI support enabled >> configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx >> --modules-path=/usr/lib/nginx/modules --conf-path=/etc/nginx/nginx.conf >> --error-log-path=/va >> r/log/nginx/error.log --http-log-path=/var/log/nginx/access.log >> --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock >> --http-client-body-temp-path=/var/c >> ache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp >> --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp >> --http-uwsgi-temp-path=/var/cach >> e/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp >> --user=nginx --group=nginx --with-compat --with-file-aio --with-threads >> --with-http_addition_ >> module --with-http_auth_request_module --with-http_dav_module >> --with-http_flv_module --with-http_gunzip_module >> --with-http_gzip_static_module --with-http_mp4_mod >> ule --with-http_random_index_module --with-http_realip_module >> --with-http_secure_link_module --with-http_slice_module >> --with-http_ssl_module --with-http_stub_sta >> tus_module --with-http_sub_module --with-http_v2_module --with-mail >> --with-mail_ssl_module --with-stream --with-stream_realip_module >> --with-stream_ssl_module --w >> ith-stream_ssl_preread_module --with-cc-opt='-g -O2 >> -fstack-protector-strong -Wformat -Werror=format-security >> -Wp,-D_FORTIFY_SOURCE=2 -fPIC' --with-ld-opt='-Wl,- >> z,relro -Wl,-z,now -Wl,--as-needed -pie' >> >> >> >> Есть самописное приложение на php. У него есть две версии: stable и >> current. Для быстрой смены используется следующая схема: >> >> /var/www/stable/ - тут лежит stable >> >> /var/www/current/ - тут лежит current >> >> /var/www/html - симлинк на на /var/www/stable или /var/www/current >> >> >> >> В nginx пыха сконфигурирована как >> >> >> >> root /var/www/html; >> >> location / { >> >> fastcgi_pass unix:/run/php-fpm.socket; >> > > сделайте тут проксирование на апстрим (в котором перечислены несколько > бекендов) > fastcgi_connect_timeout сделайте минимальным > > > >> include fastcgi_params; >> >> fastcgi_param SCRIPT_FILENAME $document_root/index.php; >> >> } >> >> >> >> Проблема в том. что при переключение stable->current (и наоборот), >> > > достаточно будет запустить тот или иной бекенд > > (не уверен, что с unix-сокетами получится, в крайнем случае можно на tcp > проксировать) > > > >> которая происходит примерно так: >> >> # /var/www/html указывает на /var/www/stable , переключаемся на current >> >> rm /var/www/html; ln -s /var/www/current/ /var/www/html >> >> >> >> до упора используются файлы из старой директории (stable в примере выше). >> Не помогает ни очистка opcache, ни рестарт пыхи. Только restart (возможно >> reload, не уверен) nginx. >> >> Хотелось бы >> >> 1) понять почему так. nginx где-то как-то кеширует куда указывает симлинк? >> >> 2) избежать этого ("троганья" nginx (в идеале и рестарта php-fpm), в >> принципе готовы поменять воркфлоу, но пока не понимаем как. >> >> >> >> С уважением, Иван. >> >> _______________________________________________ >> nginx-ru mailing list >> [email protected] >> http://mailman.nginx.org/mailman/listinfo/nginx-ru >> > > > _______________________________________________ > nginx-ru mailing list > [email protected] > http://mailman.nginx.org/mailman/listinfo/nginx-ru >
_______________________________________________ nginx-ru mailing list [email protected] http://mailman.nginx.org/mailman/listinfo/nginx-ru
