Javascript-форум (https://javascript.ru/forum/)
-   Серверные языки и технологии (https://javascript.ru/forum/server/)
-   -   Профилактика на сайте (https://javascript.ru/forum/server/22704-profilaktika-na-sajjte.html)

greatilya 29.10.2011 19:23

Профилактика на сайте
 
Имеется VPS сервер. Имеется неплохая посещаемость.
Как перезагрузить сервер, и чтобы при этом на сайте выводилась некая статичная html страница о том что ведутся технические работы? В каком направлении копать?

Kolyaj 29.10.2011 22:01

nginx настроить, чтобы отдавал не свою 501-ю, а вашу страницу.

ksa 29.10.2011 22:02

Цитата:

Сообщение от greatilya
В каком направлении копать?

У нас в csp достаточно изменить стартовую страницу и страницу обработки ошибок у csp-приложения...

Gvozd 30.10.2011 00:37

эм.
если перезагружать, то в момент перезагрузки на вашем сервер не будет запущен веб-сервер, и он не сможет отдавать никаких страниц.
То есть вам нужен как минимум работающий в этот момент сервер, который бы и работал заместо вашего в момент перезагрузки.

Если таковой сервер есть, то можно например на нем поднять Nginx в режиме проксирования на основной сервер, и указать DNS вашего домена на вспомогательный.
В момент перезагрузки переключится из проксирования в отображение статичной страницы на все запросы

greatilya 30.10.2011 09:45

Gvozd,
Спасибо, то что нужно. Как я понял это называется обратное проксирование.
Вот ссылочка по этой теме: http://www.ashep.org/2011/nginx-obratnyj-proksi-server/
Если есть еще полезные материалы, то прошу дать ссылки на них.

greatilya 30.12.2011 05:16

Gvozd,
Прошу прощения за то, что апнул тему, но думаю что лучше не плодить дубликатов.
Хотел спросить, может сможете мне дать совет относительно производительности сервера для обратного проксирования? От каких соображений отталкиваться при выборе сервера? Ngnix насколько я знаю дает минимум нагрузки, и если я правильно понимаю при обратном проксировании он будет только перенаправлять запросы. И вот думаю сервера с 256Мб оперативы будет достаточно для сайта с суточной посещаемостью 1-3тыс человек?

Gvozd 30.12.2011 05:50

Точных рекомендаций и советов дать не могу - потому что сам подобную задачу не решал, и знаю только с теоретической точки.
Все ниже - мои допущения, и нет гарантий, что они верны.

Итак:)
Мне кажется, что данная нагрузка не является хоть сколько-нибудь заметной, с точки зрения веб-сервера.
Поэтому, полагаю что данная конфигурация потребует максимум 10-20 метров дополнительной памяти, по сравнению с простоем веб-сервера(оценка сверху).
В общем, если только проксировать трафик, и не ставить ничего лишнего(привет, MySQL) что могло бы зазря откушать память, то 256 метров более чем хватит. Думаю и в 128 можно уложиться
[Проверенный факт]
Моя тестовая виртуалка с debian показывает после старта 38 метров отожратой оперативы - из них 10 приходятся на два процесса nginx
[/Проверенный факт]
Так что думаю, проксирующая тачка не должна быть сверхжелезом, при данных условиях.

greatilya 30.12.2011 07:47

:thanks:
Вот и отлично!
Буду экспериментировать в Новый Год...

Kolyaj 30.12.2011 10:52

У меня VPS с 64Мб оперативки держит 3 сайта на node.js + nginx перед ними. В сумме там ~5000 посетителей в сутки, ~30000 хитов, плюс статика. Живёт, кушать не просит.

greatilya 03.01.2012 18:24

Не могу разобраться как настроить правильно прокси, точнее как заставить его отдавать статическую страницу, если все серваки "лежат".
Сейчас конфиг такого вида:
Код:

upstream serverslist {
        ip_hash;
        server 123.123.123.123:80 max_fails=3 fail_timeout=120;
        server 124.124.124.124:80 max_fails=3 fail_timeout=120;
}

server {
        listen  80;
        server_name  www.site.ru;
        rewrite ^ http://site.ru$request_uri? permanent;
}
server {
        listen 80;
        charset utf-8;
        server_name static.site.ru;
        location / {
                root /home/user/www/static/;
        }
}
server {
        listen 80;
        client_max_body_size 2m;
        server_name site.ru;
        location / {
                proxy_pass http://serverslist;
        }
}

Пока единственная мысль: это в serverslist добавить еще один сервер(ip адрес этого сервера с nginx, и порт к примеру 81) и к нему дописать backup, тогда nginx перенаправит запросы на себя же с портом 81, если другие сервера недоступны. Ну внизу дописать что-то вида:
Код:

server {
        listen 81;
        client_max_body_size 2m;
        server_name site.ru;
        #переадресация на статичную страницу
}

В правильном направлении я думаю? или можно как-то лучше/правильнее/легче?


Часовой пояс GMT +3, время: 10:41.