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