# Внешний nginx конфиг для проксирования к контейнеру cadpoint1998
# Это конфиг для ХОСТА (не внутри контейнера)

upstream cadpoint1998_backend {
    # Контейнер слушает на localhost:8030 (из docker-compose.prod.yml)
    server 127.0.0.1:8030;
    keepalive 32;
}

# Редирект с www на основной домен
server {
    listen 80;
    listen [::]:80;
    server_name www.1998.cadpoint.ru;

    # Редирект на основной домен (без www)
    return 301 http://1998.cadpoint.ru$request_uri;
}

server {
    listen 80;
    listen [::]:80;
    server_name 1998.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;
    }
}


