115 lines
3.5 KiB
Nginx Configuration File
115 lines
3.5 KiB
Nginx Configuration File
server {
|
|
listen 80;
|
|
server_name localhost;
|
|
|
|
# Настройка буферов для улучшения производительности
|
|
client_body_buffer_size 128k;
|
|
client_max_body_size 20M;
|
|
client_body_timeout 60s;
|
|
|
|
# Буферизация для проксирования
|
|
proxy_buffers 16 32k;
|
|
proxy_buffer_size 64k;
|
|
proxy_busy_buffers_size 128k;
|
|
proxy_temp_file_write_size 256k;
|
|
|
|
# Настройка сжатия
|
|
gzip on;
|
|
gzip_comp_level 5;
|
|
gzip_min_length 256;
|
|
gzip_proxied any;
|
|
gzip_vary on;
|
|
gzip_types
|
|
application/javascript
|
|
application/json
|
|
application/xml
|
|
application/xml+rss
|
|
image/svg+xml
|
|
text/css
|
|
text/javascript
|
|
text/plain
|
|
text/xml;
|
|
|
|
# Frontend (Next.js)
|
|
location / {
|
|
proxy_pass http://frontend:3000;
|
|
proxy_http_version 1.1;
|
|
proxy_set_header Upgrade $http_upgrade;
|
|
proxy_set_header Connection 'upgrade';
|
|
proxy_set_header Host $host;
|
|
proxy_cache_bypass $http_upgrade;
|
|
proxy_read_timeout 60s;
|
|
proxy_connect_timeout 60s;
|
|
proxy_send_timeout 60s;
|
|
}
|
|
|
|
# Backend API
|
|
location /api/ {
|
|
proxy_pass http://backend:8000/api/;
|
|
proxy_http_version 1.1;
|
|
proxy_set_header Upgrade $http_upgrade;
|
|
proxy_set_header Connection 'upgrade';
|
|
proxy_set_header Host $host;
|
|
proxy_cache_bypass $http_upgrade;
|
|
proxy_read_timeout 60s;
|
|
proxy_connect_timeout 60s;
|
|
proxy_send_timeout 60s;
|
|
}
|
|
|
|
# Docs для API
|
|
location /docs {
|
|
proxy_pass http://backend:8000/docs;
|
|
proxy_http_version 1.1;
|
|
proxy_set_header Upgrade $http_upgrade;
|
|
proxy_set_header Connection 'upgrade';
|
|
proxy_set_header Host $host;
|
|
proxy_cache_bypass $http_upgrade;
|
|
}
|
|
|
|
location /redoc {
|
|
proxy_pass http://backend:8000/redoc;
|
|
proxy_http_version 1.1;
|
|
proxy_set_header Upgrade $http_upgrade;
|
|
proxy_set_header Connection 'upgrade';
|
|
proxy_set_header Host $host;
|
|
proxy_cache_bypass $http_upgrade;
|
|
}
|
|
|
|
location /openapi.json {
|
|
proxy_pass http://backend:8000/openapi.json;
|
|
proxy_http_version 1.1;
|
|
proxy_set_header Upgrade $http_upgrade;
|
|
proxy_set_header Connection 'upgrade';
|
|
proxy_set_header Host $host;
|
|
proxy_cache_bypass $http_upgrade;
|
|
}
|
|
|
|
# Статические файлы и загруженные изображения
|
|
location /uploads/ {
|
|
alias /app/uploads/;
|
|
|
|
# Настройки кэширования для оптимизации загрузки
|
|
expires 30d;
|
|
add_header Cache-Control "public, max-age=2592000";
|
|
add_header Access-Control-Allow-Origin *;
|
|
|
|
# Настройки для эффективной отдачи статических файлов
|
|
tcp_nodelay on;
|
|
tcp_nopush on;
|
|
sendfile on;
|
|
sendfile_max_chunk 1m;
|
|
|
|
# Отключаем логирование для статики
|
|
access_log off;
|
|
|
|
# Заголовки для изображений разных форматов
|
|
location ~* \.(jpg|jpeg|png|gif|ico|webp)$ {
|
|
expires 30d;
|
|
add_header Cache-Control "public, max-age=2592000";
|
|
add_header Pragma public;
|
|
add_header Vary Accept-Encoding;
|
|
access_log off;
|
|
try_files $uri $uri/ =404;
|
|
}
|
|
}
|
|
} |