Current time: 04-26-2024, 09:08 AM Hello There, Guest! (LoginRegister)


Post Reply 
 
Thread Rating:
  • 5 Votes - 5 Average
  • 1
  • 2
  • 3
  • 4
  • 5
ispCP & nginx
Author Message
data-stream_ru Offline
Moderator
*****
Moderators

Posts: 471
Joined: Jan 2009
Reputation: 7
Post: #1
ispCP & nginx
Выношу в отдельную тему.
Речь о сём http://www.sysoev.ru/nginx/

Quote:А вот это очень интересная тема. Я даже её вынесу в отдельный тренд. Ибо здесь про крон.
Только, уважаемый server, нгикс не ставится "вместо" он работает в связке с апачем. И хорошо работает. Вот только если у вас на дедике стоит только один сайт, типа куска тРамблёра. А вот конфиги под это дело панель ещё долго создавать не сможет. Да и не надо это буржуям. Они даже не знают что такое nginx. И не надо им это. Так что самим придётся девелопить на русс-язе если осилим.

Ну во первых, вопрос в том, зачем вообще нужен этот нгинкс и что это такое?
Далее по тексту всё считать имхатым IMHO.

nginx это "легкий" http сервер написанный в качестве фронт-енда к апачу. В общем случае распределение функций тут такое -
nginx быстро обрабатывает статику, вроде http страниц, картинок, видео и всякой мультимедиа.
Все "гиморой" со всеми скриптами передаёт апачу на традиционную работу и получает от него результаты, которые и выдаёт в качестве фронд-энда.
Хотя как бы заявлено, что нгинкс имеет свой встроенный перл-компилятор, неотлаженный и непроверенный, но это всё не серьёзно. По любому php скрипты и тем более питон будет обрабатывать апач, отдавая выдачу Nginx.

Всё штатное взаимодействие между апачем и нгинксом написано разработчиками. Не предмет для разговора - читаем мануалы.

Зачем нужен этот nginx?

1. Крупные распределённые системы, где на одном серваке висит один домен и этот сервак работает в качестве фронд-энда. Примеры - тРамблёр, тындекс. Гуглю тож не помешало бы.
Нужна ли им панель управления?
Ответ очевиден.

2. Системы хостинга мультимедия (Фотогаллереи, ютубе всякие и их клоны).
Опять один домен на одну машину. А то и на де6сять-сто.
Нужна ли им панель управления?

3. Бесплатные хостинги, где на один дешовый сервачёк надо напхать как можно больше простеньких сайтов всяких ламеров, написанных на html и меющих каждй мизенрный трафик, но в совокупности пожирающих много системных ресурсов через апач.
Вот тут панель управления несомненно нужна. И именно бесплатная.
Обычно такие вопросы решаются через установку фри-бздя со стареньким апачем.
Но nginx тут позволяет применить и другие решения. При этом остаться в выигрыше по системным затратам.
Таким образом, имеет смысл рассматривать только пункт 3.

И тут встаёт лишь одна проблема (ещё раз - за остальными читаем суть проекта и его мануалы) - конфиги апача и nginxa. Когда сайт на сервере один, то всё настраивается ручками один раз - не проблема. Но для любой панели управления придётся менять скрипты создания конфигов апача и nginx-а. А это уже отдельный проект. Обязательно при этом програмировать на перле, для этой панели.
И кто за это возьмётся бесплатно? Перл это вам не пхп для домохозяек, тут проффи нужны. А проффи стоят денюк.
Разработчикам панели это точно не надо. Они увы не знают то такое Nginx. А жаль.

P/S Кстати, проект nginx кажется мёртв уже много лет. И тестировался только со старыми апачами. Какие то там патчи от 03.11.2009 как бы выходят... Временами и местами...
(This post was last modified: 11-04-2009 01:00 PM by data-stream_ru.)
11-04-2009 12:50 PM
Visit this user's website Find all posts by this user Quote this message in a reply
server801 Offline
Moderator
*****
Moderators

Posts: 349
Joined: Mar 2009
Reputation: 1
Post: #2
RE: ispCP & nginx
патчи касаемые того что можно было просто завалить nginx,но эту проблему исправили.вообщем есть один парень с Украины,приворачивал на эту панель nginx,здесь,на форуме.я сним как то общался по этому вопросу,говорит -не вопрос.но вот асю его потерял.вообщем -найду-отпишусь Smile
11-04-2009 08:26 PM
Visit this user's website Find all posts by this user Quote this message in a reply
data-stream_ru Offline
Moderator
*****
Moderators

Posts: 471
Joined: Jan 2009
Reputation: 7
Post: #3
RE: ispCP & nginx
Вообще то можеть шаблончики просто подправить? ...
11-07-2009 02:33 PM
Visit this user's website Find all posts by this user Quote this message in a reply
server801 Offline
Moderator
*****
Moderators

Posts: 349
Joined: Mar 2009
Reputation: 1
Post: #4
RE: ispCP & nginx
кто займется ? Smile
11-07-2009 09:05 PM
Visit this user's website Find all posts by this user Quote this message in a reply
koffu Offline
Junior Member
*

Posts: 80
Joined: Jan 2010
Reputation: 1
Post: #5
RE: ispCP & nginx
У меня на cpanel - ном сервере стоит скрипт, автоматом генерирующий конфиг под nginx при добавлении/изменении аккаунта, на основании юзеров сипанели. Могу и хочу адаптировать свои наработки под ispcp.
Где можно найти краткое описание процедуры создания пользователя, чтобы не рыть код, а конкретно заняться делом? Сама идея, файл, из которого происходит генерация конфига апача и его релоад.

Есть-ли вообще схема взаимодействия компонентов панели?
01-09-2010 11:10 AM
Find all posts by this user Quote this message in a reply
server801 Offline
Moderator
*****
Moderators

Posts: 349
Joined: Mar 2009
Reputation: 1
Post: #6
RE: ispCP & nginx
выложи сам скрипт,можь покумекаем
01-09-2010 04:54 PM
Visit this user's website Find all posts by this user Quote this message in a reply
koffu Offline
Junior Member
*

Posts: 80
Joined: Jan 2010
Reputation: 1
Post: #7
RE: ispCP & nginx
(01-09-2010 04:54 PM)server801 Wrote:  выложи сам скрипт,можь покумекаем

Итак, скрипт в студию! Повторюсь, для сипанели. С рабочего сервера. Не включена только раздача статики из-за особенностей работы программистов - раз, настроено ограничение кол-ва запросов в сек для разных типов:
идея при активации раздачи статики -
mainpage - для /
2proxy - для \.php , который обслуживает апач

Code:
#!/bin/sh

cat > "/usr/local/nginx/conf/nginx.conf" <<EOF
user  nobody;
worker_processes  5;

error_log  logs/error.log info;

worker_rlimit_nofile  8192;

events {
worker_connections  1024; # increase for more busy servers
use epoll; # you should use epoll here for Linux kernels 2.6.x
}

http {
#Limits conn/rate
limit_conn_log_level warn;
limit_zone conn \$binary_remote_addr 10m;

limit_req_zone \$binary_remote_addr zone=mainpage:10m rate=5r/s;
limit_req_zone \$binary_remote_addr zone=2proxy:10m rate=5r/s;

#General
server_names_hash_max_size 2048;
ignore_invalid_headers on;
recursive_error_pages on;
sendfile on;
server_tokens off;

#TCP
tcp_nodelay on;
tcp_nopush on;

#MIME
include    mime.types;
default_type  application/octet-stream;

#Timeouts
keepalive_timeout  5;
client_body_timeout 5;
client_header_timeout 5;
send_timeout 5;

#Compressing
gzip on;
gzip_comp_level 9;
gzip_http_version 1.0;
gzip_vary on;
gzip_min_length  0;
gzip_buffers  16 8k;
gzip_types    text/plain application/x-javascript text/xml text/css;

#Size limits
client_body_buffer_size 8k;
client_header_buffer_size 1k;
large_client_header_buffers 1 1k;

#Proxy
proxy_send_timeout   90;
proxy_read_timeout   90;
proxy_buffer_size    8k;
proxy_buffers     16 64k;
proxy_buffering on;
proxy_cache_valid 1m;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
proxy_connect_timeout 120s;
proxy_redirect     off;
include "/usr/local/nginx/conf/vhost.conf";
}

EOF

/bin/cp /dev/null /usr/local/nginx/conf/vhost.conf

cd /var/cpanel/users
for USER in *; do
for DOMAIN in `cat $USER | grep ^DNS | cut -d= -f2`; do
IP=`cat $USER|grep ^IP|cut -d= -f2`;
ROOT=`grep ^$USER: /etc/passwd|cut -d: -f6`;
echo "Converting $DOMAIN for $USER";

cat >> "/usr/local/nginx/conf/vhost.conf" <<EOF
server {
access_log off;

error_log  logs/vhost-error_log warn;
listen    80;
server_name  $DOMAIN www.$DOMAIN;

# uncomment location below to make nginx serve static files instead of Apache
# !WARNING!
# it will make the bandwidth accounting incorrect as these files won’t be logged!
#location ~* \.(gif|jpg|jpeg|png|wmv|avi|mpg|mpeg|mp4|htm|html|js|css|bmp|csv|doc|epg|gif|ico​|odj|mp3|pdf|swf|txt|xls|xcf|iso)$ {
#root   $ROOT/public_html/;
#}

location / {
proxy_redirect  http://www.$DOMAIN:81   http://www.$DOMAIN;
proxy_redirect  http://$DOMAIN:81   http://$DOMAIN;
proxy_pass   http://$IP:81/;

proxy_set_header   Host   \$host;
proxy_set_header   X-Real-IP  \$remote_addr;
proxy_set_header   X-Forwarded-For \$proxy_add_x_forwarded_for;

limit_conn conn 5;
limit_req zone=2proxy burst=30;

}
}
EOF
done
done
/etc/init.d/nginx restart
01-09-2010 10:53 PM
Find all posts by this user Quote this message in a reply
koffu Offline
Junior Member
*

Posts: 80
Joined: Jan 2010
Reputation: 1
Post: #8
RE: ispCP & nginx
Скрипт на pёrl-e готов, завтра буду ставить nginx и тестить. Кратко, определяем что за ось и ставим соответствующую многопоточность nginx-у, на основании директории apache root генерируем домены из SQL базы. Если php вкл, то делаем раздачу статики nginx, остальное апачем. Иначе все апачем. Вот только пока не решил что делать с поддоменами - запихнуть их отдельно или вместе с конфигом основных хостов, буду читать маны...
01-10-2010 10:12 AM
Find all posts by this user Quote this message in a reply
server801 Offline
Moderator
*****
Moderators

Posts: 349
Joined: Mar 2009
Reputation: 1
Post: #9
RE: ispCP & nginx
интегрировать бы в панель бы!цены бы не было!
01-10-2010 11:32 PM
Visit this user's website Find all posts by this user Quote this message in a reply
koffu Offline
Junior Member
*

Posts: 80
Joined: Jan 2010
Reputation: 1
Post: #10
RE: ispCP & nginx
Я видел кто-то переделывал панель немного, я думаю, если решение оправдает себя, можно будет включить в следующую версию, если разработчики сочтут нужным.
Завтра начинается полноценная рабочая неделя, заодно буду тестировать в реальных условиях nginx и ещё один скрипт с ежедневными дифференциальными бэкапами и полными недельными.
(This post was last modified: 01-10-2010 11:37 PM by koffu.)
01-10-2010 11:37 PM
Find all posts by this user Quote this message in a reply
Post Reply 


Forum Jump:


User(s) browsing this thread: