Nginx + apache 2 = нет real-ip. Способ решения.

Сегодня будет пост, который к сеонизму имеет мало отношения, но может оказаться весьма полезным тем, кто держит свои сервера.

Если кто не знает, nginx — это такой очень маленький и очень быстрый сервер, который может работать как прокси. И , если его поставить поверх апача, то тогда скрипты в переменной REMOTE_ADDR будут видеть не айпишник клиента, а айпи nginx’а (127.0.0.1 обычно). В случае с apache 1.3 эта проблема решается с помощью модуля mod_realip от создателя nginx. Но в случае apache 2 это решается несколько сложнее.

Я не могу решить эту задачу с пол года. В основно из-за того, что и без этого всё работало. Да и вообще было влом вновь ковыряться с сервером, благо пока всё работает как часы. Но сегодня всё-таки решился и сделал это.

Итак, чтобы пофиксить проблему с реальными айпишниками клиентов при использовании связки nginx+apache2, нужн-то всего лишь поставить один модуль к апачу и прописать 3 строки в конфигах.

Модуль нужен rpaf2. Если у вас freebsd, то его брать нужно тут ports/www/mod_rpaf2, дальше стандартно make install clean, дальше он уже сам себя в пишет в httpd.conf, нужно будет только раскомментировать строчку


#LoadModule rpaf_module libexec/apache2/mod_rpaf.so

Путь к .so файлу может отличаться. Это не суть важно. Если у вас не freebsd, то брать модуль отсюда. Собирать и прописывать вышеприведенную строчку в конфиге апача.

Дальше там же в конфиге апача нужно добавить 2 строчки:

RPAFproxy_ips 127.0.0.1
RPAFEnable On

Первая строка — это айпишник(и) прокси(ей), вторая — говорит апачу, что rpaf юзать нужно. Что делает rpaf — он из заголовка X-Forwarded-for делает REMOTE_ADDR.

Собственно остается в конфиге nginx’а в разделе server дописать одну строчку:

proxy_set_header X-Forwarded-for $remote_addr;

Теперь нужно перезапустить оба сервер любым способом. Через панель управления там или из шела. С апачем всё понятно, а вот для управления nginx’ом можно сделать такой вот .sh файлик:

kill -HUP `cat /usr/local/etc/nginx/logs/nginx.pid`

Эта строка подаёт процессу nginx сигнал о том, что ему нужно применить новый конфиг и перезапустить worker-процессы. nginx.pid — соответственно файл с текущим номером мастер-процесса nginx’а.

Все, проблема решена.

зы

Всё хочу написать серию статей «Nginx для чайников», да вот руки не доходят.

Новики gmail

Я думаю, все уже слышали о том, что в gmail много нового?!  Например:

  • 5 гигабайт места. Всем. Даже тем, кто поднял gmail на своих доменах.
  • Цветные ярлычки (пока только в англоязычной версии)
  • IMAP доступ (пока тоже только в англоязычной версии)
  • Групповой чат (конференция, аналогично)
  • Атачи теперь могут быть до 20 мегов
  • Сборщик почты с других экаунтов
  • И еще много-много всякого разного вкусного.

Gmail+AOL+ICQНо кое что оказалось еще более вкусным — gmail chat в веб-интерфейсе теперь поддерживает связь с клиентами AOL, ICQ и еще несколько менее известных менеджеров. Пока эта функция тоже доступна только, если выбран английский интерфейс, но скоро они переведут все новое и вкусное на все языки. Или можно просто язык сменить и поюзать :) . Собственно эта новость крайне радостная. Сейчас мне приходится использовать миранду, чтобы одновременно быть онлайн в icq, gtalk, msn и yahoo. Но миранда работает только с компа. А если гугловский чат будет поддерживать все эти протоколы из веб-интерфейса, то общение станет еще более простым в любой точке мира, где есть интернет.

С другой стороны, конечно это не есть хорошо — ведь вся история сообщений будет оставаться у гугла… Continue reading

Домены .su теперь стоят всего 600 рублей

Это началось 1го декабря вроде. nic.ru принимал предварительные заявки. Вступили в силу новые цены вчера в 12.00 по москве. По предварительным заявкам продавались домены в том случае, если на них не было других заявок. В противном случае домен уходит на аукцион. Я купил пару десятков доменов. Из них только 1 ушел на аукцион, но домен реально хороший. Надеюсь, за него драться никто не будет :D .

А сколько доменов вчера купили вы?

И еще очень интересно, сколько бабла вчера подняли регистраторы? Continue reading

Обновился немного

Обновил вордпресс до последней версии, проставил теги для всех постов. У меня с расстановкой тегов большая проблема, так что не обессудьте. Теги скорее для вида, чем для функциональности. Поставил несколько новых плагинов — похожие посты, рейтинг статей, выделение моих ответов в коментах, вроде что-то еще было, уже не помню. Облако тегов добавил в панель, для всех постов теги проставил. Это заняло уйму времени, хотя постов то штук 80 всего. Continue reading

Зима началась

Вот и началась зима! Хорошего в этой зиме уже не мало — уже 2 недели как открыт горнолыжный сезон в Москве. Да, надо подводить итоги за ноябрь и вообще за осень. Но что-то не пишется ничего. Подруга уехала в Питер жить и работать минимум на год, а скорее всего даже на 3. Да еще и болею я. В общем отпишусь как приду в себя, где-то в понедельник-вторник. Сегодня буду спать, а завтра весь день кататься на доске в Степаново.