Re[6]: очень много клиентов

Igor Sysoev is at rambler-co.ru
Thu Feb 16 17:43:25 MSK 2006


On Thu, 16 Feb 2006, Anton Maksimenkov wrote:

>>> Держать апач на бакэнде заставляют следующие функции:
>>> 1) отключение неплательщиков (путём перенаправления на заданную
>>> страничку), реализовано так
>>> RewriteEngine   On
>>> RewriteMap      block-domain-ru        txt:/var/www/block.domain.ru
>>> RewriteRule     ^(/([^/]+)/.*)$        ${block-domain-ru:$2|$1}
>>> файлик /var/www/block.domain.ru пополняется записями
>>> firma74         http://domen.ru/pay.html
>>> ...
>> Это можно сделать примерно так:
>> http {
>>      map  $http_host  $blocked  {
>>           firma74     http://domen.ru/pay.html;
>>           ...
>>      }
>>      server {
>>          if ($blocked) {
>>              rewrite  ^   $blocked   redirect;
>>          }
>>          ...
>>      }
> Не удобно - это дело динамично меняется, переделывать конфиг совсем не
> с руки. Сейчас файл автоматом меняется. Нельзя ли как-то тоже здесь
> вынести это дело из конфига ?

     map  ... {
         include  /var/www/block.domain.ru;
     }

но после каждого изменения нужно делать
nginx -t && kill -HUP `cat nginx.pid`

>>> 2) layout'ы, И верхний И нижний, реализовано
>>>        LayoutDefaultHandlers   Off
>>>        LayoutHandler   text/html
>>>        LayoutHandler   text/plain
>>>        LayoutHeader    /var/www/domen.ru/header.html
>>>        LayoutFooter    /var/www/domen.ru/footer.html
>>> критично держать ОБА.
>> Но для картинок-то они не нужны ?
> смысле? на сайтах не картинки лежат, а странички (ну с картинками
> конечно), сайты то есть, информация, "я&моя собачка". К страничкам
> надо рекламу/объявления добавлять, и сверху и снизу.

Ну вот эти картинки нужно не проксировать, а отдавтаь сразу nginx'ом.

>>> 4) Самое основное, почему, даже имея всё это, в апаче была введена
>>> схема фронтенд-бакэнд, это необходимость упрощенного конфига для
>>> поддержки сайтов типа *.domen.ru.
>>> То есть для vasya.domen.ru нужно чтобы DocumentRoot был скажем
>>> /var/www/domen.ru/vasya, а для ivan.domen.ru DocumentRoot был
>>> /var/www/domen.ru/ivan
>> Я правильно понимаю, что сейчас сделано так: - Apache -> backend ?
>>        location / {
>>            set  $hostname  main;
>>            if ($http_host ~* "^(.+)\.domen\.ru.*$") {
>>                set  $hostname  $1;
>>            }
>>            rewrite   ^(.+)$  /$hostname$1   break;
>>            proxy_pass   http://backend.domen.ru.int;
>>        }
> кусок моего конфига:
>        server {
>                listen  X.X.X.X:80;
>                server_name     www.domen.ru *.domen.ru;
>                set $host_part  "";
>                location /status {stub_status on; }
>                location / {
>                        if ($http_host ~* "^(.+)\.domen\.ru.*$") {
>                                set $host_part  $1;
>                        }
>                        rewrite ^(.*)$  /$host_part/$1  break;
>                        proxy_pass      http://127.0.0.7;
>                }
>        }
> ну вобщем-то да, практически оно то же самое и есть.
>
>
> Пробегало сообщение, что схема одного сервера не сработала:

В 0.3.27 заработало.


Игорь Сысоев
http://sysoev.ru





More information about the nginx-ru mailing list