85 lines
3.3 KiB
Plaintext
85 lines
3.3 KiB
Plaintext
# Внешний 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;
|
||
}
|
||
}
|
||
|
||
|