ФорумРазработкаУстановка и администрирование ПОВебсервер → Грамотная организация вебсервера, рассчитанного на много пользователей

Грамотная организация вебсервера, рассчитанного на много пользователей

  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 10 января 2011 г. 20:10

    Добрый вечер господа. Как я уже писал - теперь у меня VPS'ка. Там будет немного сайтов, но тем не менее все нужно сделать по-уму. Как я это вижу:

    1) на каждый домен создается группа и пользователь
    2) тут же у нас логин по ssh
    3) базы данных начинаются с %username%_
    4) пользователи БД начинаются с %username%_
    5) сайты находятся по адресу /home/%username%/public_html/
    6) логи (апача, пыха) /home/%username%/log

    внимание вопросы:
    как располагать субдомены?
    a) /home/%username%/subdomains/my, /home/%username%/subdomains/dev
    b) /home/%username%/subdomains/my/public_html, /home/%username%/subdomains/dev/public_html

    7) хочу пользователю позволить самостоятельно прописывать записи для своей зоны (/home/%username%/etc/).
    не будет ли валиться весь бинд, если пользователь накосячит? Как предотвратить это

    8) тоже самое с виртхостами апача

    9) ессно поддержка своих php.ini (/home/%username%/etc/php.ini)

    10) и понятное дело, cgi-скрипты будут запускаться от их имени.
    а поддерживает ли php-fpm и nginx это? В будущем будет nginx поверх апача стоять и может быть для некоторых хостов только он

    че-то может упустил. Советуйте
  • fgets

    Сообщения: 1099 Репутация: N Группа: Кто попало

    Spritz 10 января 2011 г. 20:27, спустя 17 минут 10 секунд

    nginx лучше сразу ставить, иначе потом могут быть проблемы с установкой, и не забывай поставить apache-mpm2 для безопасности
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 10 января 2011 г. 21:05, спустя 37 минут 49 секунд

    поставь сипанель
    Спустя 8 сек.
    или ispmanager
    Сапожник без сапог
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 10 января 2011 г. 21:58, спустя 52 минуты 46 секунд

    fgets, не учи ученого, сразу поставил. С ngix'ом сейчас некогда колупаться, потом все сделаю

    phpdude, то вы все орете что нахуй ваши эти панели и делайте руками то советуете ставить их
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 10 января 2011 г. 22:18, спустя 20 минут 42 секунды

    Абырвалг, я тебе советую по принципу "незнаешь - не суйся". потеряешь больше 45 баксов за лицензию на исппанель, поверь.
    Сапожник без сапог
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 10 января 2011 г. 22:41, спустя 22 минуты 13 секунд

    то есть ты предлагаешь еще и купить ее? О_о

    то есть предложенная мной схема совсем хуевая?

    я не собираюсь организовывать школохостинг, там никто чужой не будет хоститься. Просто хочу, что б не бардак был
    Спустя 191 сек.
    фу, меня исп раздражает. Привык как-то уже к сипанел. Она почти у всех клиентов, которые покупают наш экстеншн
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 10 января 2011 г. 23:33, спустя 52 минуты 3 секунды

    Абырвалг, как хочешь - мне похуй. сипанель стоит дороже исп. я те всего лишь время предлагал сэкономить, дальше сам :-)
    Сапожник без сапог
  • Sin

    Сообщения: 80 Репутация: N Группа: Адекваты

    Spritz 11 января 2011 г. 2:42, спустя 3 часа 9 минут 53 секунды


    #!/bin/sh
    USER=`echo $1 | tr . _|cut -c 1-16`
    PASS=`apg -n1`
    /usr/sbin/groupadd $1
    /usr/sbin/adduser -g $1 $1
    echo $PASS | passwd –stdin $1
    mkdir /home/$1/dev
    chown $1:$1 /home/$1/dev
    chmod a+x /home/$1
    chmod a+x /home/$1/dev
    ln -s /home/$1/dev /var/www/html/dev/$1
    smbpasswd -a $1 -w $PASS
    echo "give mysql password"
    echo "in case if you mistype it, you can later upload the dump in /tmp/newuserdump.sql manually"
    echo 'GRANT ALL PRIVILEGES ON `'$USER'\_%`.* TO '\'''$USER''\''@'\''192.168.%'\'' WITH GRANT OPTION; GRANT ALL PRIVILEGES ON `'$USER'\_%`.* TO '\'''$USER''\''@'\''localhost'\'' WITH GRANT OPTION;' > newuserdump.sql
    echo 'FLUSH PRIVILEGES;' >> /tmp/newuserdump.sql
    mysql -u root -p -h 127.0.0.1 -P 3306 < /tmp/newuserdump.sql
    mysql -u root -p -h 127.0.0.1 -P 3307 < /tmp/newuserdump.sql
    mysql -u root -p -h 127.0.0.1 -P 3308 < /tmp/newuserdump.sql
    echo "user is " $USER
    echo "login: $1 " > /tmp/newuser.mail
    echo "password: $PASS " >> /tmp/newuser.mail
    echo " " >> /tmp/newuser.mail
    echo "These credentials can be used to access example.com via ssh and ftp (use port 5224 for ssh)" >> /tmp/newuser.mail
    echo "/home/$1/dev is world-acessible as http://example.com/dev/$1" >> /tmp/newuser.mail
    echo "You can access the databases at example.com at ports (3306, 3307 and 3308) mysql versions 5.1.34, 4.1.22 and 5.0.84 as $USER and create databases with names $USER\_% " >> /tmp/newuser.mail
    echo "now send the text in  /tmp/newuser.mail to the user with subject saing \"access credentials \" ."


    это скрипт с продакшн-сервера, принимающий параметром имя юзера, и готовящий ему сообщение для почты. Подрихтуй под свои требования.
    Виртуалхосты в апаче рисуются с помощью mod_vhost_alias исходя из пути (т.е. просто имя юзера в скрипте должно совпадать с именем домена).
    Это были ответы на 1, 2, 3, 4, 5, a, b, 8
    7: намед поддерживает вайлдкардовые инклуды типа include userzones/*.zone. Туда можно писать конфиги. rndc reload спокойно переживет кривой конфиг, но перестанет работать до тех пор, пока кривизна не будет исправлина. Так что все же стоит задуматься о валидаторе.
    9. Рулится в .htaccess при условии AllowOverride All в апаче.
    10. mod_suexec в апаче.

    вот как-то так. Это настолько полная и подробная инфа, насколько не влом предоставить в рамках форума. Более тонкая заточка под энвайронмент или разжевывание - соре, это уже работа и стоит литрового St.Patrick :P

    Ой, а что ж это все об апача да об апаче, если нжинкс заявлен? А то, что нжинкс - кривое гавно и тупо таких фич не имеет блять!!! Как же он меня заебал!!!
    Цытато из разговора с NRG об этом топеге:
    заебали этим кривым поделием. Я бы сысоева выгнал с первого семестра первого курса, ебаный нжинкс - один из самых страшных примеров быдлокода, который я встречал. Индусы нервно курят

    И да, я читал его код. Вот именно поэтому так и говорю
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 11 января 2011 г. 2:43, спустя 8 секунд

    sin, чем именно nginx тебе не угодил?
    Сапожник без сапог
  • Sin

    Сообщения: 80 Репутация: N Группа: Адекваты

    Spritz 11 января 2011 г. 3:04, спустя 21 минуту 44 секунды

    Там многабукафф под пиво, расскажу, если будет пыхослет в киеве. Тут влом строчить многостраничный опус и тянуть цитаты из исходников. Вкратце: основная причина ненависти - совершенно дебильная работа с памятью. Операции выделения - высвобождения, как сказали бы америкосы, are self-inconsistent (бля, опять забыл технический русиш). И это у тредовой аппликухи! Он заебал меня сегфолтами на продакшнах. "І ще багато різної хуйні за вами замічав я, батьку" (с) современная украинска классика
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 11 января 2011 г. 3:10, спустя 5 минут 31 секунду

    sin, о, спасибо, я тоже думал накидать что-то типа такого, но не на sh

    не могу понять, отчего логи апача пишутся от имени рута? Так, что б наверняка записались?
  • Sin

    Сообщения: 80 Репутация: N Группа: Адекваты

    Spritz 11 января 2011 г. 3:20, спустя 9 минут 58 секунд

    Зависит от операционки. В некоторых контроллирующий процесс апача запущен от рута, и пишет рутом, в некоторых - от апачевого юзера и пишутся от него. Простое "в лоб" решение - выставление umask, чтоб и другим показывало. Можно и с апачем вроде изгаляться, встречал, но не подскажу: просто сам никогда не пробовал, моя паранойя против.
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 11 января 2011 г. 3:26, спустя 5 минут 42 секунды

    я просто думал /home/%username% сделать доступной только для этого %username%. Но апачу хуево от этого стало)

    в теории можно добавлять апач в группу %username% и тогда апач сможет получить доступ к логам. Ну то такое, хуй с ним
  • Sin

    Сообщения: 80 Репутация: N Группа: Адекваты

    Spritz 11 января 2011 г. 4:07, спустя 41 минуту 53 секунды

    Эээ, ты не туда копал. Наоборот, надо апач гонять от юзверя, и тогда все прекрасно, смотри свой же пункт десять. mod_suexec в общем случае, а в случае пыховых аппликух - совсем канфетка, mod_suphp. Строго под твои условия, вот тебе счастье
  • fgets

    Сообщения: 1099 Репутация: N Группа: Кто попало

    Spritz 11 января 2011 г. 18:52, спустя 14 часов 44 минуты 21 секунду


    я просто думал /home/%username% сделать доступной только для этого %username%. Но апачу хуево от этого стало)

    в теории можно добавлять апач в группу %username% и тогда апач сможет получить доступ к логам. Ну то такое, хуй с ним


    сделай ограниченные команды ssh, и поставь 700 на папки юзеров, и по идее этого хватит

Пожалуйста, авторизуйтесь, чтобы написать комментарий!