Вот небольшой мануал, а то часто спрашивают, как поднять весту новичку под редиректы доры и т.д. Знаний у меня мало в администрировании, это просто делюсь удачным вариантом, который десятки раз использовал для быстрой настройки серверов. Возможно какая-то часть информации уже устарела и неактуальна, или есть решение получше.
В мануале замените «111.111.111.111» на свой IP сервера, и «luboeimiya» на желаемое имя сервера.
И обратите внимание что не все ниженаписанное надо без мозгов вставлять в консоль:
1. Сначала вам нужен сервер. Сойдет любой дешевый VPS, но с чистой CentOS7 без предустановленных панелей, веб-сервисов и прочей лабуды. То есть ни в коем случае не выбирайте ОС с уже установленной сборкой VestaCP, а то она там обычно перенастроена на вкус админов хостинга, что не всегда хорошо.
Я ради экономии обычно беру у разных европейских компаний дешевые VPS (~ в 2 раза дешевле чем такие же с ру-говорящим сервисом). Но в поддержку никогда не обращаюсь, все настраиваю самостоятельно с помощью гугла. Может не всегда по феншую, но в итоге работает. Например, вот такой сервер за 4.99 €
https://contabo.com/?show=configurator&vserver_id=221 . Либо ищите подходящие на poiskvps.
2. Подготовим слегка почву, хотя иногда эти проги могут уже стоять:
Установим типа тоталкокмандера для SSH:
yum install mc
Установим текстовый редактор nano:
yum install nano
По этому редактуру клавиши управления гуглите. Подскажу самые популярные: сохранить изменения и закрыть редактор: “Ctrl+X, Y, Enter”, удалить строку: «F9», удалить все ниже курсора «Alt+T».
Пропишем типа имя для виртуального сервера:
hostnamectl set-hostname luboeimiya
И в конец файла добавляем строку через nano:
nano /etc/sysconfig/network
3. Скачиваем файлы установки панели:
curl -O http://vestacp.com/pub/vst-install.sh
Идете на сайт конструктора и формируете команду установки: https://vestacp.com/install/
Вот мой пример под доры на статике без БД и апача (nginx + php-fpm):
bash vst-install.sh --nginx yes --phpfpm yes --apache no --named no --remi yes --vsftpd yes --proftpd no --iptables yes --fail2ban yes --quota no --exim no --dovecot no --spamassassin no --clamav no --softaculous no --mysql no --postgresql no --hostname luboeimiya.ru --email [email protected] --password Password_Smeni
luboeimiya.ru – это «первый сайт» который панель создает сама при установке. У меня он обычно вымышленный несуществующий. Не удаляйте его потом, так как на его каталог будут ссылаться все сайты которые по А-записям прикреплены к вашему IP, но не добавлены в панель еще. А это даст возможность «заглушку» настроить, или даже редирект общий для всех сайтов без добавления их в панель.
4. Удалить index.html и robot.txt для шаблона по умолчанию, тогда сайты будет без них создавать. Это удобно, а то потом при заливке доров не всегда хочет заменять их корректно.
rm -rf /usr/local/vesta/data/templates/web/skel/public_html/*
Если у вас распаковка доров по PHP не успевает нормально пройти, то зайти в etc и увеличить память\время исполнения пхп, таймауты:
cd /etc
find . -type f -name 'php.ini' -exec sed -i -r 's/memory_limit = 128M/memory_limit = 1613M/g' {} \;
find . -type f -name 'php.ini' -exec sed -i -r 's/max_execution_time = 30/max_execution_time = 313/g' {} \;
cd /etc/nginx/
find . -type f -name 'nginx.conf' -exec sed -i -r 's/proxy_connect_timeout 90;/proxy_connect_timeout 290;/g' {} \; && find . -type f -name 'nginx.conf' -exec sed -i -r 's/proxy_send_timeout 90;/proxy_send_timeout 290;/g' {} \; && find . -type f -name 'nginx.conf' -exec sed -i -r 's/proxy_read_timeout 90;/proxy_read_timeout 290;/g' {} \;
5. Сменить язык, лимиты пакета в веста по этим урлам:
6. Отключить в кроне ( https://111.111.111.111:8083/list/cron/ )ежедневное обновление статистике занимаемого места на диске (оно жрет RAM). Строку ниже НЕ в консоли вводить а на странице просто найти и заблокировать:
7. Отключить стандартную страницу приветствия пустого сайта (код ниже закомментирует все строки в файле welcome.conf):
find /etc/httpd/conf.d/ -type f -name 'welcome.conf' -exec sed -i -r 's/^/#/g' {} \;
8. увеличить лимиты ( https://skurudo.ru/all/nginx-too-many-open-files/ ):
nano /etc/systemd/system/php-fpm.service.d/limits.conf
Вставить в него:
9. Логи отключить полностью:
find /usr/local/vesta/data/templates/web/httpd/ \( -name "default.tpl" -o -name "default.stpl" \) -exec sed -i -r 's/( *CustomLog| *ErrorLog)/#\1/g' {} \;
find /usr/local/vesta/data/templates/web/nginx/ \( -name "default.tpl" -o -name "default.stpl" \) -exec sed -i -r 's/( *access_log| *error_log)/#\1/g' {} \;
find /home/admin/conf/web \( -name "httpd.conf" -o -name "nginx.conf" \) -exec sed -i -r 's/( *access_log| *error_log| *CustomLog| *ErrorLog)/#\1/g' {} \;
10. Увеличим таймаут ожидания успешного запуска служб, именно он растет при увеличении количества доменов:
( https://unix.stackexchange.com/questions/227017/how-to-change-systemd-service-timeout-value )
добавляем в конец раздела [Service] для всех ниже описанных файлов строку:
nano /usr/lib/systemd/system/httpd.service
nano /usr/lib/systemd/system/nginx.service
nano /usr/lib/systemd/system/php-fpm.service
после чего либо ребут сервака либо строку ниже и ребут служб:
systemctl daemon-reload
проверяем командой ( https://server-gu.ru/systemd-scripts/ ):
systemctl -a show httpd.service | grep -i timeout
systemctl -a show nginx.service | grep -i timeout
В итоге если у вас тысячи доменов то Vesta очень долго запускает веб-службы после старта сервака. И по умолчанию там обычно в ошибку все вываливается. Но мы указываем серверу подождать 20 минут прежде чем проверять все ли запустилось. В итоге этого хватает для весты чтобы все поднять.
11. Если надо отключить автоперегрузку сервисов при удалении\добавлении доменов:
( https://forum.vestacp.com/viewtopic.php?f=36&t=17754&p=73834 )
Вот команды чтобы очистить эти три файла (обязательно “Y” ввести когда переспросит):
cp /dev/null /usr/local/vesta/bin/v-restart-web
cp /dev/null /usr/local/vesta/bin/v-restart-proxy
cp /dev/null /usr/local/vesta/bin/v-restart-web-backend
В итоге если я покупаю новый VPS и не знаю сколько реально он выдержит, то делаю все по мануалу, а потом по API добавляю (вот шаблон открытый) 1 реальный домен и 5К левых вымышленных доменов. Перегружаю сервер, жду 20 минут и проверяю работает ли реальный домен. Если да, то добавляю еще 5К, и так по кругу пока веб-сервер не сдохнет (не запустится реальный домен даже после 20 минут). Тогда удаляю левые домены и добавляю уже реальные где то на 90% от найденного максимума. Если у вас очень слабый сервер, то вместо 5К добавляйте по 1К. Ну логику надеюсь поняли.
Источник https://zennolab.com/discussion/threads/ustanovka-vestacp-centos7-nginx-php-fpm-pod-dory-maksimum-sajtov.84906/