Вернуться   BBS SyS-AdmiN > Технический > Программный
Регистрация Правила форумаДоска почета Пожертвования Справка Пользователи Календарь Поиск Сообщения за день Все разделы прочитаны

Программный Кодинг, скрипты и т.п.

Рекламный блок!
Если Вы хотите поддержать развития данного ресурса, но не имеете возможности помочь финансово, то перейдите по ссылкам указаным ниже. Чем чаще будете переходить тем больше Вы поможете развитию проэкта. Что бы прочитать это объявление полностью, нажмите на кнопку ниже

Ответ
 
LinkBack Опции темы Опции просмотра
Старый 02.12.2009, 10:58   #1 (permalink)
VIP :)
 
Аватар для BUM
 
Регистрация: 18.07.2008
Адрес: Ks.UA
Сообщений: 16
Вы сказали Спасибо: 1
Поблагодарили 1 раз в 1 сообщении
BUM обеспечил(а) себе прекрасное будущееBUM обеспечил(а) себе прекрасное будущееBUM обеспечил(а) себе прекрасное будущееBUM обеспечил(а) себе прекрасное будущееBUM обеспечил(а) себе прекрасное будущееBUM обеспечил(а) себе прекрасное будущееBUM обеспечил(а) себе прекрасное будущееBUM обеспечил(а) себе прекрасное будущееBUM обеспечил(а) себе прекрасное будущееBUM обеспечил(а) себе прекрасное будущееBUM обеспечил(а) себе прекрасное будущее
Отправить сообщение для BUM с помощью ICQ Отправить сообщение для BUM с помощью Skype™
По умолчанию Генерилка конфига для Apache + Nginx

Вчера всетаки решился у себя перенастроить веб-сервер, т.к. панельки нет, а переводить пачку доменов руцями как-то неохота решил сделать скриптик.
Часть скрипта взял с замечательного сайта adminco.org.

Начну пожалуй с настроек системы, nginx + apache, т.к. делалось все на debian'e то скрипт для других осей нужно будет немного подправить

Сразу определимся что хосты будут лежать в /var/www/hosted/<domain>/www
сделано для того чтоб можно было организовать доступ по ftp не только к сайту а например к бекапам (/var/www/hosted/<domain>/backups/) и т.п.
Nginx у нас будет выступать как проксирующий фронт-енд к Apache.

для начала настроем апач чтоб работал только на localhost'e для этого в ports.conf указываем:
NameVirtualHost 127.0.0.1:8080
Listen 127.0.0.1:8080
Вск конфиги будут лежать в sites-available работающие сайты будут находиться симлинком в sites-enabled
Если у нас есть например IN A записи в днсе, но сайта такого нет, то сделаем "заплатку по умолчанию" т.к. конфиг апача ситается сверху вниз сделаем хост 000default со следующим содержанием:
Код:
<VirtualHost 127.0.0.1:8080>
        ServerAdmin webmaster@domain

        DocumentRoot /var/www/apache-default/
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/apache-default/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
        </Directory>

        ErrorLog /var/log/apache2/error.log
        LogLevel warn
        CustomLog /var/log/apache2/access.log combined
</VirtualHost>
далее настроем nginx, т.к. дефолтный пакет в дебиане слишком урезан возьмем с Index of /pub/debian/lenny/ последнюю версию.
В основном конфиге nginx'a вносим небольшие изменения:
Код:
    log_format  main    '$remote_addr - $remote_user [$time_local] $host $request "$status" $body_bytes_sent "$http_referer" '
                        '"$http_user_agent" "$http_x_forwarded_for"';

    log_format  domain  '$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" '
                        '"$http_user_agent" "$http_x_forwarded_for"';

    log_format  bytes   '$body_bytes_sent';

    limit_zone   one  $binary_remote_addr  10m;
    server {
        listen IP_сервера:80 default backlog=2048  deferred;
        .....
        .....
    }
создадим 000def.conf для "заплатки"
Код:
server {
    listen 80;
    error_page  403 404 500 502 503 504 /index.html;
    location = /index.html { root   html;  }
    # images files location
    location ~* ^.+\.(bmp|jpg|jpeg|pjpeg|gif|ico|cur|png|css|doc|txt|js|docx|rtf|ppt|pdf|svg)$ {
    expires     5d;
    set $root_path  /var/www/apache-default;
         root  $root_path;
         access_log  /var/log/apache2/domains/def.log ;
    }
    # Static files location
    location ~* ^.+\.(swf|3gp|dll|msi|cdr|cdd|cue|cdi|mkv|nrg|pdi|mds|mdf|arj|zip|tgz|gz|rar|bz2|7z|xls|exe|tar|wav|avi|mp3|mp4|mov|wmv|vob|iso|mpg|midi|cda|wma)$ {
        expires     10d;
        set $root_path  /var/www/apache-default;
            root  $root_path;
            limit_conn one 2;
            limit_rate 220k;
            access_log  /var/log/apache2/domains/def.log;
         }
    location / {
        limit_conn  one  10;
        root        /var/www/apache-default;
        access_log  /var/log/apache2/domains/def.log;
        proxy_set_header        Host      $host;
        proxy_set_header        X-Real-IP $remote_addr;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://127.0.0.1:8080;
        proxy_redirect off;
    }
    location ~ /\.ht { deny  all; }
}
далее чтоб апач у нас определял номально ip-адреса с которых пришел посетитель нам необходимо поставить и сконфигурировать мmod-rpaf для апача
Код:
apt-get install libapache2-mod-rpaf
Настройка /etc/apache2/mods-available/rpaf.conf:
Код:
<IfModule mod_rpaf.c>
RPAFenable On
RPAFsethostname On
RPAFproxy_ips 127.0.0.1
</IfModule>
далее начинаем заполнять виртуал хосты берем тот самый скрипт:
Код:
#!/bin/sh
# (c) Alex Kovalenko <bum at status dot ks dot ua> 2009
PATH=$PATH:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
LANG=C
export LANG
export PATH
domain=$1
echo "Making directoris: "
mkdir /var/www/hosted/$domain
mkdir /var/www/hosted/$domain/www
chown www-data:www-data -R /var/www/hosted/$domain
echo "[ done ]"
echo "Making config files for Apache: "
echo -e "#
# Apache2 http server.
# Virtual host config ver. 0.3 (1.12.2009), apache v.2.xx
# autocreated on: `date \"+%d.%m.%Y %H:%M:%S\"`
#
<VirtualHost 127.0.0.1:8080>
    ServerAdmin webmaster@$domain
    DocumentRoot /var/www/hosted/$domain/www
    php_admin_flag safe_mode on
    php_admin_value disable_functions passthru,exec,system,chown,chmod
    <directory /var/www/hosted/$domain/www>
        Options -Indexes FollowSymlinks MultiViews
        DirectoryIndex index.html index.php index.htm
        AllowOverride all
    </directory>
    ServerName  $domain
    ServerAlias *.$domain
    ErrorLog    /var/log/apache2/$domain.error.log
    CustomLog   /var/log/apache2/$domain.access.log common
</VirtualHost>
" >  /etc/apache2/sites-available/$domain.conf
echo "[ done ]"
echo "Enable $domain in Apache: "
ln -s /etc/apache2/sites-available/$domain.conf /etc/apache2/sites-enabled/$domain.conf
if [ -f /etc/apache2/sites-enabled/$domain.conf ]; then
chown root.root /etc/apache2/sites-available/$domain.conf
chmod 644 /etc/apache2/sites-available/$domain.conf
/etc/init.d/apache2 reload
echo "[ done ]"
fi
LIMIT=10
echo "Making config files for Nginx: "
echo -e "#
# NginX http server.
# Virtual host config ver. 0.3 (1.12.2009), nginx v.5.xx
# autocreated on: `date \"+%d.%m.%Y %H:%M:%S\"`
#
server {
    listen 80;
    server_name www.$domain;
    rewrite ^(.*)$  http://$domain\$1  permanent;
    }

server {
    listen 80;
    server_name $domain;
    error_page   400 401 402 403 404  /40x.html;
    location = /40x.html { root   html; }
    error_page  500 502 503 504 /50x.html;
    location = /50x.html { root   html;  }
    location ~* ^.+\.(bmp|jpg|jpeg|pjpeg|gif|ico|cur|png|css|doc|txt|js|docx|rtf|ppt|pdf|svg)$ {
    expires     5d;
    set \$root_path  /var/www/hosted/${domain}/www;
         root  \$root_path;
     access_log  /var/log/apache2/domains/${domain}.bytes bytes;
         access_log  /var/log/apache2/domains/${domain}.log domain;
    }
    location ~* ^.+\.(swf|3gp|dll|msi|cdr|cdd|cue|cdi|mkv|nrg|pdi|mds|mdf|arj|zip|tgz|gz|rar|bz2|7z|xls|exe|tar|wav|avi|mp3|mp4|mov|wmv|vob|iso|mpg|midi|cda|wma)$ {
        expires     10d;
        set \$root_path  /var/www/hosted/${domain}/www;
            root  \$root_path;
            limit_conn one 2;
            limit_rate 220k;
            access_log  /var/log/apache2/domains/${domain}.log domain;
            access_log  /var/log/apache2/domains/${domain}.bytes bytes;
            access_log  /var/log/apache2/domains/${domain}.access.log main;
         }
    location / {
        limit_conn  one  ${LIMIT};
    root        /var/www/hosted/${domain}/www;
        access_log  /var/log/apache2/domains/${domain}.access.log main;
        access_log  /var/log/apache2/domains/${domain}.bytes bytes;
        access_log  /var/log/apache2/domains/${domain}.log domain;
        proxy_set_header        Host      \$host;
        proxy_set_header        X-Real-IP \$remote_addr;
        proxy_set_header        X-Forwarded-For \$proxy_add_x_forwarded_for;
        proxy_pass http://127.0.0.1:8080;
        proxy_redirect off;
    }
    location ~ /\.ht { deny  all; }
}
" >  /etc/nginx/sites-available/$domain.conf
echo "[ done ]"
echo "Enable $domain in Nginx: "
ln -s /etc/nginx/sites-available/$domain.conf /etc/nginx/sites-enabled/$domain.conf
if [ -f /etc/nginx/sites-enabled/$domain.conf ]; then
chown root.root /etc/nginx/sites-available/$domain.conf
chmod 644 /etc/nginx/sites-available/$domain.conf
/etc/init.d/nginx reload
echo "[ done ]"
fi
exit 0
содадаем домен: ./<scriptname>.sh example.com
__________________
чтобы единожды настроенный линукс упал надо обладать минусовым IQ и быть похожим на осьминога (восемь лап и все из жопы).
BUM вне форума  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Ответить с цитированием
Ответ

« - | - »

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Вкл.



Часовой пояс GMT +2, время: 02:09.


Копирайты Реклама