我有一群web服务器运行在Apache-PHP(与prefork)。 我打算从prefork转到worker(fcgi)。 问题是,我不能一次移动所有的服务器,所以在短时间内(天的问题)他们几个将在fcgi和一些modphp。 我今天testing了会话是否在这两种服务器之间工作(一个testing服务器与fcgi和一个真正的mod_php),看起来不是,当我的代理(基本nginx)redirect我从一个ws与fcgi到一个与mod_php。 托pipe在这些服务器上的应用程序是一个只有很less修改的核心(核心上没有任何东西)。 如果我把代理拿出来,一切正常,我可以从一个节点改变到另一个,而且会话是一样的。
有什么可以导致这个nginx? 以下是nginxconfiguration的一部分:
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;
但它肯定会影响会话/ cookiepipe理。 我们正在处理一个可能的相关问题: https : //stackoverflow.com/questions/6791446/cakephp-php-user-sessions-swapping-for-a-subset-of-our-customers