mod: все для deployment

This commit is contained in:
2026-03-28 17:49:22 +03:00
parent b2a7df1d40
commit 60813cf019
6 changed files with 383 additions and 15 deletions

View File

@@ -0,0 +1,84 @@
# Внешний nginx конфиг для проксирования к контейнеру cadpoint1998
# Это конфиг для ХОСТА (не внутри контейнера)
#
# Используется переменная /home/e-serg/docker-app/cadpoint1998-site из .env
# Генерируется из этого файла через: sed "s|\/home/e-serg/docker-app/cadpoint1998-site|$HOST_PROJECT_PATH|g" \
# config/nginx/cadpoint1998--external-nginx.example > config/nginx/cadpoint1998--external-nginx.conf
upstream cadpoint1998_backend {
# Контейнер слушает на localhost:8030 (из docker-compose.prod.yml)
server 127.0.0.1:8030;
keepalive 32;
}
server {
listen 80;
listen [::]:80;
server_name tmp.cadpoint.ru;
# Редирект HTTP → HTTPS (cerbot добавит SSL позже)
# Пока оставляем HTTP для тестирования
# Раскомментируй после добавления SSL:
# return 301 https://$server_name$request_uri;
# Логи для этого виртуального хоста
# --- ЛОГИ ---
access_log /var/log/nginx/cadpoint1998.access.log;
error_log /var/log/nginx/cadpoint1998.error.log warn;
# Основной блок проксирования
location / {
# Проксируем все запросы в контейнер
proxy_pass http://cadpoint1998_backend;
# Сохраняем оригинальный хост в заголовке (важно для правильной работы контейнера)
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;
# Keepalive для улучшения производительности
proxy_http_version 1.1;
proxy_set_header Connection "";
# Timeouts для длительных запросов
proxy_connect_timeout 60s;
proxy_send_timeout 60s;
proxy_read_timeout 60s;
# Буферизация (для архивного сайта можно отключить если мало памяти)
# proxy_buffering off;
proxy_buffering on;
proxy_buffer_size 4k;
proxy_buffers 8 4k;
}
# Кэширование статических файлов (HTML, GIF, CSS, JS, иконки)
location ~* \.(htm|html|gif|png|jpe?g|svg|ico|css|js|woff|woff2|ttf|eot)$ {
proxy_pass http://cadpoint1998_backend;
proxy_set_header Host $host;
# Кэш в браузере на 7 дней для статики (архив не меняется)
expires 7d;
add_header Cache-Control "public, max-age=604800, immutable";
# Логирование отключаем для статики (шум в логах)
access_log off;
}
# Health check для мониторинга (внутренний эндпоинт)
location = /health {
access_log off;
default_type text/plain;
return 200 "OK\n";
}
# Запретить доступ к скрытым файлам
location ~ /\. {
deny all;
access_log off;
log_not_found off;
}
}