| |||||||
| Регистрация | Правила форума | Доска почета | Пожертвования | Справка | Пользователи | Календарь | Поиск | Сообщения за день | Все разделы прочитаны |
| Программный Кодинг, скрипты и т.п. |
![]() |
| | LinkBack | Опции темы | Опции просмотра |
| | #1 (permalink) |
| VIP :) | Вчера всетаки решился у себя перенастроить веб-сервер, т.к. панельки нет, а переводить пачку доменов руцями как-то неохота решил сделать скриптик. ![]() Часть скрипта взял с замечательного сайта 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'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;
.....
.....
} Код: 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; }
} Код: apt-get install libapache2-mod-rpaf Код: <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
__________________ чтобы единожды настроенный линукс упал надо обладать минусовым IQ и быть похожим на осьминога (восемь лап и все из жопы). |
| | |