ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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



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



 




Copyright © Lexa Software, 1996-2009.