форум vBSupport.ru > В помощь веб-мастеру > Общие вопросы сайтостроения > Системное администрирование
  • »
VBsupport перешел с домена .ORG на родной .RU Ура! Пожалуйста, обновите свои закладки - VBsupport.ru
 
 
 
 
Smalesh
В Черном списке
Lightbulb Apache 2.4 + Nginx. Одинаковые IP у всех пользователей vBulletin? mod_remoteip в помощь! ;)
5

Симптомы проблемы: у всех пользователей одинаковый ip, и это ip-адрес самого сервера (или 127.0.0.1).

Причина: перед apache стоит nginx, и апач вместо ip клиента видит ip nginx.

Лечение: nginx умеет передавать ip-адрес клиента в служебном заголовке X-Real-IP (если nginx собран с модулем http_realip) . Все что требуется от апача - уметь читать этот заголовок. В версии 2.2 это делается сторонним модулем mod_rpaf (подробнее смотрим тут: Apache + Nginx. Одинаковые IP у всех пользователей vBulletin? mod_rpaf в помощь!). В apache2.4 надобности в mod_rpaf нет, с этим прекрасно справляется штатный mod_remoteip, который появился в этой линейке апача. Все что требуется - подключить его и настроить.

Подключаем, например создав файл, его месторасположение зависит от системы, /Includes/remoteip.conf (или можно дописать в основной конфиг httpd.conf

Code:
LoadModule remoteip_module libexec/apache24/mod_remoteip.so
<IfModule mod_remoteip.c>
RemoteIPHeader X-Real-IP
RemoteIPInternalProxy 127.0.0.1
RemoteIPInternalProxy xxx.xxx.xxx.xxx
</IfModule>
После apachectl restart проверяем, IP на форуме должны быть правильными, юзвери разранены, а ваши нервы белые и пушистые.
Bot
Yandex Bot Yandex Bot is online now
 
Join Date: 05.05.2005
Реклама на форуме А что у нас тут интересного? =)
 
 
Sellrion
Kernel panic
 
Sellrion's Avatar
Default
0

Я даж встречал такое на паре хостингов, реально работающих, но видать со школотой вместо админов - все глобальные переменные PHP, из которых можно было вытащить IP адрес клиента, включая REMOTE_ADDR и X_FORWARDED_FOR, были с локалхостом.)))
 
 
Smalesh
В Черном списке
Default
0

Quote:
Originally Posted by Sellrion View Post
все глобальные переменные PHP, из которых можно было вытащить IP адрес клиента, включая REMOTE_ADDR и X_FORWARDED_FOR, были с локалхостом.
Значит nginx собран без http_realip. Во всех остальных случаях, на крайний случай, можно вытянуть заголовок правкой includes/class_core.php, кажется в паре мест.
 
 
mindframe
Специалист
 
mindframe's Avatar
Default
0

:( Apache, боль.
 
 
Smalesh
В Черном списке
Default
0

Quote:
Originally Posted by mindframe View Post
:( Apache, боль.
Кому как. Мне иногда проще поставить apache+fcgid и отдать клиенту хост и не париться с переделкой реврайтов на каждый чих.
 
 
mindframe
Специалист
 
mindframe's Avatar
Default
0

Quote:
Originally Posted by Smalesh View Post
Кому как. Мне иногда проще поставить apache+fcgid и отдать клиенту хост и не париться с переделкой реврайтов на каждый чих.
Я не считаю апач чем-то плохим и ужасным, но он частично изжил себя, на проектах более-менее крупных в 90% случаях именно он становится узким местом. Насчёт реврайтов, в нигусе как по мне они даже более явные и понятные, есть конечно интересные плюшки в апаче, но в нигусе их куда больше, тот-же stream, download module с поддержкой докачки.
 
 
Smalesh
В Черном списке
Default
0

Quote:
Originally Posted by mindframe View Post
нигусе
Это ты так энджиникс обозвал? О_о.

Quote:
Originally Posted by mindframe View Post
на проектах более-менее крупных в 90% случаях именно он становится узким местом.
В крупных проектах используются специализированные решения, и как правило, там специалисты достаточно высокого уровня, что бы самостоятельно разобраться с заголовками. А в более приземленных случаях, под массовый хостинг связка nginx под статику + apache+fastcgi под php очень даже не только имеет право на существование, но и себя полностью оправдывает.
 
 
mindframe
Специалист
 
mindframe's Avatar
Default
1

Quote:
Originally Posted by Smalesh View Post
Это ты так энджиникс обозвал? О_о.
Коллега на работе так же реагировал по началу

Quote:
Originally Posted by Smalesh View Post
В крупных проектах используются специализированные решения, и как правило, там специалисты достаточно высокого уровня, что бы самостоятельно разобраться с заголовками. А в более приземленных случаях, под массовый хостинг связка nginx под статику + apache+fastcgi под php очень даже не только имеет право на существование, но и себя полностью оправдывает.
Не спорю, так и есть, это как с ЯП, каждый под свою задачу, с апачем примерно такая-же история.
 

Tags
apache, http_realip, mod_remoteip, mod_rpaf, nginx


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off




All times are GMT +4. The time now is 12:47 AM.


Powered by vBulletin® Version 3.0.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Loading...