У меня есть кластер веб-серверов, работающих на apache-php (с prefork). Планирую перейти с prefork на worker (fcgi). Проблема в том, что я не могу переместить все серверы одновременно, поэтому в течение короткого периода времени (вопрос дней) некоторые из них будут на fcgi, а некоторые на modphp. Я протестировал сегодня, будут ли сеансы работать между этими двумя типами серверов (тестовый сервер с fcgi и реальный с mod_php) и похоже, что нет, я выхожу из системы, когда мой прокси (базовый nginx) перенаправляет меня с ws с fcgi на ws с mod_php. Приложение, размещенное на этих серверах, представляет собой magento с небольшими изменениями (ничего в ядре). Если я уберу прокси, все будет работать отлично, я могу перейти с одного узла на другой, и сеанс останется прежним.
Есть ли что-нибудь в nginx, что может вызвать это? Ниже представлена часть конфига nginx:
proxy_ignore_headers "Cache-Control" "Expires";
proxy_cache_valid 200 302 60m;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_max_temp_file_size 0;
client_max_body_size 100m;
client_body_buffer_size 128k;
proxy_connect_timeout 600000;
proxy_send_timeout 600000;
proxy_read_timeout 600000;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
proxy_cache_use_stale error timeout invalid_header updating http_500 http_502 http_503 http_504;
Не ответ, но, может быть, подсказка.
FCGI не имеет x_forwarded_for. У вас может быть все готово:
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
Но это, безусловно, может повлиять на управление сеансом / файлами cookie. Мы работаем над возможной связанной проблемой: https://stackoverflow.com/questions/6791446/cakephp-php-user-sessions-swapping-for-a-subset-of-our-customers