Appearance
Nginx
Конфигурация
1. Конфигурации поддоменов
/etc/nginx/sites-available/api.a-ceramica.ru— конфигурация для бэкенда на FastAPI/etc/nginx/sites-available/admin.a-ceramica.ru— конфигурация для админки на Nuxt 3/etc/nginx/sites-available/auth.a-ceramica.ru— конфигурация для Keycloak
Для активации конфигураций создаются символьные ссылки:
bash
/etc/nginx/sites-enabled/api.a-ceramica.ru -> ../sites-available/api.a-ceramica.ru
/etc/nginx/sites-enabled/admin.a-ceramica.ru -> ../sites-available/admin.a-ceramica.ru
/etc/nginx/sites-enabled/auth.a-ceramica.ru -> ../sites-available/auth.a-ceramica.ruПример типовой конфигурации сайта
nginx
server {
server_name subdomain.a-ceramica.ru;
location / {
proxy_pass http://127.0.0.1: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;
proxy_set_header X-Forwarded-Proto $scheme;
# Если необходимо закрыть под логин с паролем
auth_basic "Restricted Area";
auth_basic_user_file /etc/nginx/.htpasswd;
}
error_log /var/www/logs/frontend/subdomain.a-ceramica.error.log warn; # путь к логам для ошибок и предупреждений, указанный путь должен существовать
access_log /var/www/logs/frontend/subdomain.a-ceramica.access.log; # путь к логам доступа, указанный путь должен существовать
# Указание сертификатов и ключей для SSL, указывается сразу, позже сами сертификаты создаются через certbot
listen 443 ssl;
ssl_certificate /etc/letsencrypt/live/subdomain.a-ceramica.ru/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/subdomain.a-ceramica.ru/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
}
server {
if ($host = subdomain.a-ceramica.ru) {
return 301 https://$host$request_uri;
}
server_name subdomain.a-ceramica.ru;
listen 80;
return 404;
}Обслуживание и перезагрузка
Проверка конфигурации:
bash
sudo nginx -tПерезагрузка nginx:
bash
sudo systemctl reload nginxили, если нужно жёстко перезапустить:
bash
sudo systemctl restart nginxСоздание нового поддомена
- Добавить запись поддомена в DNS у хостера
- Создать файл в
/etc/nginx/sites-available/new-subdomain.example.com - Вставить и настроить конфигурацию (можно взять за основу существующий шаблон)
- Проверить конфигурацию:
bash
sudo nginx -t- Создать символическую ссылку:
bash
sudo ln -s /etc/nginx/sites-available/new-subdomain.example.com /etc/nginx/sites-enabled/- Перезагрузить Nginx:
bash
sudo systemctl reload nginxSSL и получение сертификатов
- SSL-сертификаты выдаются через
certbot - Сертификаты лежат в
/etc/letsencrypt/live/
Для получения сертификатов используется следующая команда:
bash
certbot --nginx