У нас есть веб-приложения, которые только что вышли в эфир. Поскольку это используется в нескольких корпоративных сетях, возникла своеобразная проблема.Конфигурация Codeigniter за прокси
Пользователи могут войти в систему, но пользователи, которые находятся за корпоративными сетями, периодически регистрируются и просматривают другие профили пользователей как свои собственные. Иногда сеансы сталкиваются.
Это текущие настройки на сервере:
$config['sess_cookie_name'] = 'cisession';
$config['sess_expiration'] = 72000;
$config['sess_expire_on_close'] = FALSE;
$config['sess_encrypt_cookie'] = FALSE;
$config['sess_use_database'] = FALSE;
$config['sess_table_name'] = 'ci_sessions';
$config['sess_match_ip'] = FALSE;
$config['sess_match_useragent'] = TRUE;
$config['sess_time_to_update'] = 300;
Мы на Амазонке позади балансировки нагрузки на стеке ЛАМПЫ.
Мы действительно тянем за волосы на этом, любые указатели приветствуются. Благодаря!
Возможно, вы захотите спросить на http://serverfault.com/ и включить информацию о том, что такое топология (прокси и т. Д.) С обеих сторон. Это похоже на проблему на сетевом уровне, а не на программную проблему. Быстрый поиск в Google поднял http://aws.amazon.com/about-aws/whats-new/2010/04/08/support-for-session-stickiness-in-astic-load-balancing/, в котором говорится о липких сессий. В принципе, если вы используете балансировщик нагрузки с несколькими серверами позади него, должен быть механизм «привязать» сеанс к серверу, который запустил сеанс. – stormdrain
Проблема происходит по крайней мере в 4 таких типах сетей, поэтому я бы исключал это на данном этапе. Также вступает в игру липкий сеанс, поэтому одни и те же пользователи используют один и тот же экземпляр сервера на амазонке. Предположите, что у вас есть время, но я думаю, что это что-то в приложении и обработке сеанса, что вызывает это. – codeHead
Да, было бы разумно, что это происходит в разных сетях, если сеансы не являются липкими; нет ничего, что говорило бы балансировочному серверу, на который сервер отправил запрос. Таким образом, пользователь 1 запускает сеанс на сервере 1; пользователь 2 запускает сеанс на сервере 2; следующий запрос пользователя 1 переходит на сервер 2 и получает сеанс пользователя 2. Если вы не внесли никаких других изменений в сеансы codeigniters, codeigniter НЕ является проблемой, иначе эта проблема появится для всех, кто использует CI. – stormdrain