```{index} nginx, ошибки; oops.html, сертификаты ``` # ПРОД - Добавление нового сайта ## 1. Создаём самоподписанный сертификат ```{rubric} На хосте c04-ansible: ``` 1. {ref}`generate_new_cert_script` 2. {doc}`/ansible/playbooks/nginx-update-certs` ## 2. Создаём нужные папки + распространяем статику Создаём папки `/srv/sites/*/{logs,public_html}` + распространяем `oops.html`, `maintenance.html` (если есть --- то и другую статику). ```{rubric} На хосте c04-ansible: ``` - добавляем новый сайт в список `inv_nginx_srv_sites`: ```bash vim inv/production/group_vars/<Группа_фронтов_nginx>.yml; ``` - если есть `oops.html`, другой статический контент, то добавляем в `roles/nginx_update_srv_sites/files/prod/sites//public_html/`; - выполняем плейбук: ```bash ansible-playbook -i inv/production playbook/maintenance/nginx/update_srv_sites.yml ``` ## 3. Создаём и распространяем конфиг nginx для нового сайта ```{rubric} На первом фронте nginx: ``` - создаём `.conf` файл для нового сайта; - проверяем, что нет ошибок, и применяем[^footnote1] конфигурацию для первого фронта: ```bash nginx -t nginx -s reload ``` [^footnote1]: Плейбук перезапустит nginx только на тех фронтах, где "увидит" изменения в конфигурации. Для первого фронта изменений не будет, т. к. мы их только что внесли. Соответственно, на нём важно не забыть применить новую конфигурацию вручную. - коммитим изменения и пушим в репозиторий (от имени root): ```bash cd /etc/nginx git status git add conf.d/newsite.ru.conf git commit -m 'Add newsite.ru.conf' --author='Author Name ' git push ``` ```{rubric} На хосте c04-ansible: ``` Выполняем плейбук для распространения и применения[^footnote1] новой конфигурации для всех фронтов nginx: ```bash ansible-playbook -i inv/production playbook/maintenance/nginx/git_pull_config_vdc04.yml ```