# Внешний 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; } # Редирект с 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; } }