Тут недавно замечательный провайдер FastVPS без объявления войны сменил мне айпишник. Точнее, с объявлением войны дней за десять, но разве от этого легче )
В итоге у меня все предсказуемо сломалось, пришлось выковиривать IP из конфигов. Сегодня нашел еще одно место, где он, оказывается, может быть вшит.
А дело было как: есть у меня один форум на vBulletin. И тут вдруг стали люди жаловаться, что не могут войти, получают сообщение "вы исчерпали лимит попыток входа, ждите 15 минут бла бла бла".
Попытки входа фиксируются в табличке vb_strikes (офигительно семантичное название, минут 10 искал эту сволочь). И там я с удивлением обнаружил, что все эти неудачники ломятся с одного и того же айпи, причем где-то я его видел... а, ну да - это тот самый айпи, который я вчера 100500 раз копипастил в конфиги!
А получает апач этот айпи, конечно, от nginx-а. Смотрим конфиг nignx.conf, убеждаемся, что там есть
proxy_set_header X-Real-IP $remote_addr;
Смотрим, чего видит пыха в $_SERVER:
echo $_SERVER['HTTP_X_REAL_IP']; // ага, мой собственный
echo $_SERVER['REMOTE_ADDR']; // айпи моего сервера =(
Вспоминаем, как обычно решается эта проблема во взаимоотношениях Apache и Nginx - при помощи mod_rpaf. Раз раньше оно работало, значит он у нас уже есть и тоже работает, но как-то не так. Ищем его конфиг и находим вот чего:
# /etc/apache2/conf.d
LoadModule rpaf_module /usr/lib/apache2/modules/mod_rpaf.so
RPAFproxy_ips СТАРЫЙ_СУКА_АЙПИШНИК
RPAFEnable On
Ну все, счастье есть. Меняем ip, перегружаем апач, проверяем еще раз содержимое $_SERVER, идем спать.
Сожалеем, что доставили Вам неудобства. Надеемся, что на новом сервер Ваши проекты будут работать лучше и быстрее. Ping до России должен был улучшиться 100% :)
Спасибо, что остаетесь с нами!