cat, grep, cut, awk в данном случае у меня достают нужную информацию из файлов панели управления (IP и прочее). Всё это в дальнейшем используется в файле host.conf, там для каждого пользователя генерится конфиг на основе шаблона. Шаблон выше я сильно сократил для того чтобы было поятнее - на самом деле сам шаблон выглядит примерно так:
Код: Выделить всё
############### $DOMAIN ###############
server {
listen $IP:80;
server_name $DOMAIN $ALIAS;
location ~* \.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|
midi|wav|bmp|rtf|js|swf|avi|mp3)$ {
$ROOT;
access_log off;
}
location ~ /\.ht {
deny all;
}
location / {
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 80 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
proxy_connect_timeout 10s;
proxy_redirect off;
proxy_pass http://$IP:3000/;
proxy_set_header Host \$host;
proxy_set_header X-Real-IP \$remote_addr;
proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
}
}
Всё что нужно, это вывести шаблон в отдельный файл (бывает часто нужно сделать изменения в нём, затем запустить скрипт ребилда). Также у скрипта несколько параметров, в каждом из них он используется - загонять его в EOF несколько раз не очень удобно, особенно когда нужно что-то изменить в шаблоне.
а потом
sed "s/{IP}/$IP/;s/{USER}/$USER/" -i /etc/web/host.conf
В принципе можно и так, но мне кажется что должно быть более простое этому решение...Поскольку пользователей много заменять в каждом случае переменные на значения будет долго...