Здравствуйте, в моем codeigniter я создал таблицу как ci_sessions со следующими полями
CREATE TABLE IF NOT EXISTS `ci_sessions` (
session_id varchar(40) DEFAULT '0' NOT NULL,
ip_address varchar(45) DEFAULT '0' NOT NULL,
user_agent varchar(120) NOT NULL,
last_activity int(10) unsigned DEFAULT 0 NOT NULL,
user_data text NOT NULL,
PRIMARY KEY (session_id),
KEY `last_activity_idx` (`last_activity`)
);
Все поля работают нормально, кроме IP-адреса, который хранится как 0.0.0.0 для каждого клиента. Я отредактировал мой config.php, как показано ниже.
$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 7200;
$config['sess_expire_on_close'] = FALSE;
$config['sess_encrypt_cookie'] = FALSE;
$config['sess_use_database'] = TRUE;
$config['sess_table_name'] = 'ci_sessions';
$config['sess_match_ip'] = TRUE;
$config['sess_match_useragent'] = TRUE;
$config['sess_time_to_update'] = 300;
С Linode ваше приложение скорее всего за прокси. Вы можете либо узнать свой IP прокси и добавить его в белый список в вашем конфигурационном файле CodeIgniter (внизу /application/config/config.php
) или следуйте инструкциям на Ссылка Nodebalancer Линоде за использование Apache mod_rpaf
модуль для переназначения X_FORWARDED_FOR в REMOTE_ADDR.
Других решений пока нет …