Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Связка nginx-apache, реальные IP в логах индейца  (Прочитано 9124 раз)

0 Пользователей и 1 Гость просматривают эту тему.

iks

  • Автор темы
  • Гость
Nginx
(Нажмите, чтобы показать/скрыть)

Apache
(Нажмите, чтобы показать/скрыть)
« Последнее редактирование: 15 Апреля 2012, 16:06:27 от iks »

Оффлайн vadim-nsk

  • Старожил
  • *
  • Сообщений: 1318
  • Жить надо так, как горит пламя!
    • Просмотр профиля
    • Linux в Новосибирске
Re: Связка nginx-apache, реальные IP в логах индейца
« Ответ #1 : 11 Апреля 2012, 13:17:27 »
вы так и не сказали у вас mod_rpaf на apache используется или что?
Если что.
apt-get install libapache2-mod-rpaf
опс прошу извинения. тогда не в httpd.conf надо настройки менять в тут.
/etc/apache2/mods-enabled/rpaf.conf хотя у вас в apache2.conf прописано подхватывать настройки из httpd.conf они возможно игнорируются так mods-enabled/*.conf идет раньше.
у меня вот так выглядит rpaf.conf
<IfModule mod_rpaf.c>
RPAFenable On
RPAFsethostname On
RPAFproxy_ips 127.0.0.1
</IfModule>
« Последнее редактирование: 11 Апреля 2012, 15:13:53 от vadim-nsk »

Оффлайн unimix

  • Активист
  • *
  • Сообщений: 537
    • Просмотр профиля
Re: Связка nginx-apache, реальные IP в логах индейца
« Ответ #2 : 11 Апреля 2012, 17:46:52 »
Вопрос в том чтоб в логах индейца писались реальные IP, а не как у меня сейчас 192.168.0.1

Зачем? Ради логов апача?
А логи nginx никак не устраивают...

iks

  • Автор темы
  • Гость
Re: Связка nginx-apache, реальные IP в логах индейца
« Ответ #3 : 11 Апреля 2012, 18:15:05 »
вы так и не сказали у вас mod_rpaf на apache используется или что?
откройте 4-й спойлер, там сказано что стоит он, /etc/apache2/mods-enabled/rpaf.conf такой-же как у вас

А логи nginx никак не устраивают...
Логи индейца Awstats использую для получения статиститики
« Последнее редактирование: 11 Апреля 2012, 18:34:05 от iks »

Оффлайн unimix

  • Активист
  • *
  • Сообщений: 537
    • Просмотр профиля
Re: Связка nginx-apache, реальные IP в логах индейца
« Ответ #4 : 11 Апреля 2012, 19:37:51 »
Хорошо.
Вот в чём разница логов nginx и apache? И ещё: что может быть в логах nginx, чего не будет в логах apache?
Наверно AWStats никак не настраивается...

iks

  • Автор темы
  • Гость
Re: Связка nginx-apache, реальные IP в логах индейца
« Ответ #5 : 11 Апреля 2012, 19:47:16 »
Хорошо.
Вот в чём разница логов nginx и apache? И ещё: что может быть в логах nginx, чего не будет в логах apache?
Наверно AWStats никак не настраивается...
А смысл там те-же 192.168.0.1 почему-то

Оффлайн alexeym35

  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
    • Хорошие новости
Re: Связка nginx-apache, реальные IP в логах индейца
« Ответ #6 : 11 Апреля 2012, 19:57:14 »
Насколько я понял, наружу у вас смотрит nginx, который отдает статику и обращается за динамическим контентом к апачу.
Соответственно, апач честно пишет в логи посещений IP адрес nginx-а, который находится во внутренней сети.

Попробуйте поставить модуль realip_module (Заменяет IP адрес прокси-сервера на адрес клиента, переданный прокси-сервером в заголовках "X-Real-IP" или "X-Forwarded-For".), такая связка используется на хостинге nic.ru

Кстати, от себя я бы посоветовал использовать nginx+php, мой сервер работает именно в такой конфигурации

iks

  • Автор темы
  • Гость
Re: Связка nginx-apache, реальные IP в логах индейца
« Ответ #7 : 11 Апреля 2012, 20:00:48 »
Попробуйте поставить модуль realip_module (Заменяет IP адрес прокси-сервера на адрес клиента, переданный прокси-сервером в заголовках "X-Real-IP" или "X-Forwarded-For".), такая связка используется на хостинге nic.ru
откройте 2-й спойлер

Оффлайн unimix

  • Активист
  • *
  • Сообщений: 537
    • Просмотр профиля
Re: Связка nginx-apache, реальные IP в логах индейца
« Ответ #8 : 11 Апреля 2012, 20:05:42 »
А смысл там те-же 192.168.0.1 почему-то

А запросы с каких IP делаются, что в логах nginx те же 192.168.0.1? Или это IP роутера?

iks

  • Автор темы
  • Гость
Re: Связка nginx-apache, реальные IP в логах индейца
« Ответ #9 : 11 Апреля 2012, 20:22:45 »
Пока тема прикрыта, сейчас то-же мелькнула мысль. а не теряется ли где-то IP, положил такой файл на сервер
(Нажмите, чтобы показать/скрыть)
и получил IP 192.168.0.1, немного разберусь, потом отпишусь в теме

iks

  • Автор темы
  • Гость
Re: Связка nginx-apache, реальные IP в логах индейца
« Ответ #10 : 15 Апреля 2012, 15:48:44 »
Спасибо всем за помощь, глюк был на самом деле не в данной связке, а в потере IP до сервера. IPTABLES маскировал реальный IP клиентов в туннеле, сейчас изменил правила
#!/bin/bash

IPTABLES="/sbin/iptables"

$IPTABLES --flush
$IPTABLES --table nat --flush
$IPTABLES --delete-chain
$IPTABLES --table nat --delete-chain
$IPTABLES -F
$IPTABLES -X
#####################################################################

INT_IP=192.168.0.1 # внутренний IP-адрес локальной сети
LAN_IP=192.168.0.21 # внутренний IP-адрес сервера 1

EXT_IF=ppp0 # внешний интерфейс
INT_IF=vboxnet0 # внутренний интерфейс VBox
# INT_IF=vmnet1 # внутренний интерфейс VMware

# внешний, реальный IP-адрес
# EXT_IP=91.192.X.X # статичный
# EXT_IP=`wget -qO - 2ip.ru | egrep -m 1 -o "([0-9]+\.){3}[0-9]+"` # динамичный способ 1
EXT_IP=`ifconfig -a $EXT_IF | egrep -m 1 -o "([0-9]+\.){3}[0-9]+" | sed 1q` # динамичный способ 2

PORT_IF="21 22 25 53 80 110 111 143 389 443 993 995 8080" # порты с какими работаем

# поменяем IP
ifconfig $INT_IF $INT_IP

##### Перенапрвления по портам в локальную сеть #####
for port in $PORT_IF
do
$IPTABLES -I INPUT -p tcp --dport $port -m state --state NEW -j ACCEPT
$IPTABLES -I INPUT -p udp --dport $port -m state --state NEW -j ACCEPT

$IPTABLES -t nat -A PREROUTING --dst $EXT_IP -p tcp --dport $port -j DNAT --to-destination $LAN_IP
$IPTABLES -t nat -A PREROUTING --dst $EXT_IP -p udp --dport $port -j DNAT --to-destination $LAN_IP

# Прозраное прожеждение хорошо использовать для серверов, виден IP клиента
$IPTABLES -t nat -A POSTROUTING -s $LAN_IP -o $EXT_IF -p tcp --dport $port -j MASQUERADE
$IPTABLES -t nat -A POSTROUTING -s $LAN_IP -o $EXT_IF -p udp --dport $port -j MASQUERADE
# подмена IP клиента
# $IPTABLES -t nat -A POSTROUTING --dst $LAN_IP -p tcp --dport $port -j SNAT --to-source $INT_IP
# $IPTABLES -t nat -A POSTROUTING --dst $LAN_IP -p udp --dport $port -j SNAT --to-source $INT_IP
#############################
$IPTABLES -t nat -I OUTPUT --dst $EXT_IP -p tcp --dport $port -j DNAT --to-destination $LAN_IP
$IPTABLES -t nat -I OUTPUT --dst $EXT_IP -p udp --dport $port -j DNAT --to-destination $LAN_IP

# Я не использую, но можно открыть
# $IPTABLES -I FORWARD -s $LAN_IP -i $EXT_IF -p tcp -m state --state NEW --dport $port -j ACCEPT
# $IPTABLES -I FORWARD -s $LAN_IP -i $EXT_IF -p udp -m state --state NEW --dport $port -j ACCEPT
done

##### Раздача интернета в локалку #####
$IPTABLES -I FORWARD -i $EXT_IF -o $INT_IF -s 192.168.0.0/24 -m conntrack --ctstate NEW -j ACCEPT
$IPTABLES -I FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A POSTROUTING -t nat -o $EXT_IF -j MASQUERADE

exit 0
до этого были правила какие я закрыл, сейчас прозрачный тунель, и все работает.

P.S. В первом сообщении внес изменения, как сейчас у меня организованна связка nginx-apache с коментариями, может кому пригодится.
Почему такие танцы, просто экспериментирую на виртуальном сервере, сейчас удалось его сделать вполне работоспособным, кстати на виртуалке я использую "Виртуальный адаптер хоста"
« Последнее редактирование: 16 Апреля 2012, 01:34:34 от iks »

Оффлайн alexeym35

  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
    • Хорошие новости
Re: Связка nginx-apache, реальные IP в логах индейца
« Ответ #11 : 17 Апреля 2012, 01:47:18 »
Позвольте спросить, почему вы решили использовать именно связку nginx+apache, а не просто nginx+PHP-FPM к примеру?

iks

  • Автор темы
  • Гость
Re: Связка nginx-apache, реальные IP в логах индейца
« Ответ #12 : 17 Апреля 2012, 09:35:35 »
Позвольте спросить, почему вы решили использовать именно связку nginx+apache, а не просто nginx+PHP-FPM к примеру?
Ну пока эта связка вроде устраивает, да и по производительности, небольшая разница получается

 

Страница сгенерирована за 0.037 секунд. Запросов: 25.