28 ноября 2017 г., 20:52 пользователь Иван <ng...@kinetiksoft.com> написал:
> Здравствуйте! > > > > 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 > nginx-ru@nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru >
_______________________________________________ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru