ALT Linux sysadmins discussion
 help / color / mirror / Atom feed
* [Sysadmins] nginx+nginx+... :)
@ 2008-01-05 23:41 Michael Shigorin
  2008-01-06  0:30 ` Denis Smirnov
  2008-01-17  6:43 ` Vladimir V. Kamarzin
  0 siblings, 2 replies; 4+ messages in thread
From: Michael Shigorin @ 2008-01-05 23:41 UTC (permalink / raw)
  To: sysadmins; +Cc: Denis Ovsienko

	Здравствуйте.
Родилось тут желание (и возможность) чуть разогнать сервер
в подписи.  Работает он на связке nginx+apache, поэтому после
причёсывания всего нужного в новом контейнере и нескольких дней
неспешных игрищ с ab(8) было решено переезжать.  Опять же, это
быстрее и обратимее делать разворотом реверс-прокси, чем DNS.

Но в итоге получилась такая вот связка:

old-ip:80 [dnat]
`-> ve0:8080 [nginx]
    `-> new-ip:8080 [dnat]
        `-> ve1:8080 [nginx]
            `-> ve2:8080 [nginx]
                `-> ve2:80 [apache]
    
Здесь два момента, один про порты и другой про IP.

Про порты -- старый: если apache где-то в недрах посадить не на
:80, то при каноникализации куда-то наружу может вылезти левый
порт.  Который внутрь вовсе не факт, что просунут вообще хоть
как-то.  Поэтому проще обеспечить apache на :80, а всё остальное
так или иначе выстроить между ним и тем внешним :80, на который
к нам собственно ходят.

Этим ночером выучил ещё один вариант нового, про IP.

При работе reverse proxy или такого frontend webserver, каким тут
является nginx, backend webserver запросы получает от него, а не 
от клиента.  В логах же хочется видеть всё-таки клиента.  Поэтому
прокси обучается добавлять исходный IP в левый заголовок вроде 
X-Real-IP: или X-Forwarded-For:, а бэкенд -- доставать оттуда
нужный адрес и прикидываться, что так и было.

Для apache-1.3 есть такой mod_realip, у нас с ним апач года три
как собирается.  Для apache-2.x есть такой apache2-mod_rpaf,
который в 4.0 собран, но с багом #13886, поэтому из коробки не
работает (справедливости ради, совсем из коробки и не выйдет,
надо прописывать доверенные IP, с которых будут приниматься
к рассмотрению такие заголовки).  Конфигурируются они по
документации, только вместо 127.0.0.1 может быть другой адрес,
если прокси ходит не по loopback interface:

--- /etc/httpd/conf/httpd.conf
AddModule mod_realip.c
# ...

<IfModule mod_realip.c>
        RealIP 127.0.0.1 xfwd
        RealIP 10.0.1.234 xfwd
        RealIP my.re.al.ip xfwd
</IfModule>
# ...
---

Тут выяснилось, что nginx как бэкенд тоже умеет такое.
Зовётся оно ngx_http_realip_module, описано здесь:
http://sysoev.ru/nginx/docs/http/ngx_http_realip_module.html

У меня _не_ завелось на 0.5.20 из ALS4.0+updates, но поехало
с тем же конфигом на 0.5.31-alt4 из 4.0/branch (осталось
дофиксить там неприятность с недостающим вдвое bucket_hash_size
по умолчанию и надо бы в updates).

Вот, архивирую :)

-- 
 ---- WBR, Michael Shigorin <mike@altlinux.ru>
  ------ Linux.Kiev http://www.linux.kiev.ua/


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [Sysadmins] nginx+nginx+... :)
  2008-01-05 23:41 [Sysadmins] nginx+nginx+... :) Michael Shigorin
@ 2008-01-06  0:30 ` Denis Smirnov
  2008-01-17  6:43 ` Vladimir V. Kamarzin
  1 sibling, 0 replies; 4+ messages in thread
From: Denis Smirnov @ 2008-01-06  0:30 UTC (permalink / raw)
  To: shigorin, sysadmins, Denis Smirnov, Denis Ovsienko

06.01.08, Michael Shigorin<mike@osdn.org.ua> написал(а):

> дофиксить там неприятность с недостающим вдвое bucket_hash_size
> по умолчанию и надо бы в updates).

А что, subst который я туда написал не работает?
Или ты про bucket_hash_size (который вообще судя по всему каждому под
себя хакать надо, а я не понимаю почему оно не может выставляться
автоматом).

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [Sysadmins] nginx+nginx+... :)
  2008-01-05 23:41 [Sysadmins] nginx+nginx+... :) Michael Shigorin
  2008-01-06  0:30 ` Denis Smirnov
@ 2008-01-17  6:43 ` Vladimir V. Kamarzin
  2008-01-18  9:46   ` Michael Shigorin
  1 sibling, 1 reply; 4+ messages in thread
From: Vladimir V. Kamarzin @ 2008-01-17  6:43 UTC (permalink / raw)
  To: sysadmins

>>>>> On 06 Jan 2008 at 04:41 "MS" == Michael Shigorin writes:

 MS> к рассмотрению такие заголовки).  Конфигурируются они по
 MS> документации, только вместо 127.0.0.1 может быть другой адрес,
 MS> если прокси ходит не по loopback interface:

 MS> --- /etc/httpd/conf/httpd.conf
 MS> AddModule mod_realip.c
 MS> # ...

 MS> <IfModule mod_realip.c>
 MS>         RealIP 127.0.0.1 xfwd
 MS>         RealIP 10.0.1.234 xfwd
 MS>         RealIP my.re.al.ip xfwd
 MS> </IfModule>
 MS> # ...
 MS> ---

btw, я предпочитаю прописывать просто "RealIP on", чтобы не заморачиваться с
прописыванием всех фронтендов + они ещё и меняются со временем.

-- 
vvk

Russian Postfix irc: irc.freenode.net #postfix-ru

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [Sysadmins] nginx+nginx+... :)
  2008-01-17  6:43 ` Vladimir V. Kamarzin
@ 2008-01-18  9:46   ` Michael Shigorin
  0 siblings, 0 replies; 4+ messages in thread
From: Michael Shigorin @ 2008-01-18  9:46 UTC (permalink / raw)
  To: sysadmins

On Thu, Jan 17, 2008 at 11:43:10AM +0500, Vladimir V. Kamarzin wrote:
>  MS> <IfModule mod_realip.c>
>  MS>         RealIP 127.0.0.1 xfwd
>  MS>         RealIP 10.0.1.234 xfwd
>  MS>         RealIP my.re.al.ip xfwd
>  MS> </IfModule>
>  MS> # ...
>  MS> ---
> btw, я предпочитаю прописывать просто "RealIP on", чтобы не
> заморачиваться с прописыванием всех фронтендов + они ещё и
> меняются со временем.

Оно-то да, но несекьюрно, если порт открыт :)
Могут fake IP подставить тогда при желании.

-- 
 ---- WBR, Michael Shigorin <mike@altlinux.ru>
  ------ Linux.Kiev http://www.linux.kiev.ua/


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2008-01-18  9:46 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-01-05 23:41 [Sysadmins] nginx+nginx+... :) Michael Shigorin
2008-01-06  0:30 ` Denis Smirnov
2008-01-17  6:43 ` Vladimir V. Kamarzin
2008-01-18  9:46   ` Michael Shigorin

ALT Linux sysadmins discussion

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/sysadmins/0 sysadmins/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 sysadmins sysadmins/ http://lore.altlinux.org/sysadmins \
		sysadmins@lists.altlinux.org sysadmins@lists.altlinux.ru sysadmins@lists.altlinux.com
	public-inbox-index sysadmins

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.sysadmins


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git