Tôi đang cố sử dụng Nginx làm máy chủ proxy giữa máy khách và Gunicorn. Nginx, Gunicorn (Django) là các container của Docker. Vấn đề là tôi không thể tắt tính năng đệm ngược dòng khi tôi gửi tệp lớn từ Máy khách đến Ứng dụng Django. Thời gian TTFB khá nhỏ, do đó, thanh tiến trình của tôi (sử dụng sự kiện xhr.upload.progress) trở nên rất nhanh 100% (chưa đến giây). Sau đó, tôi phải đợi 30 giây trong khi tệp sẽ được tải lên máy chủ. Đây là cài đặt của tôi. Hãy giúp tôi. Tôi đã thử nhiều cấu hình cố gắng đặt kích thước bộ đệm thành 0, v.v., kiểm tra nhiều câu trả lời trên StackOverflow, nhưng không có gì hữu ích.
docker-compose.yaml
...
dịch vụ:
đb:
hình ảnh: postgres:12.4
khối lượng:
- postgres_data:/var/lib/postgresql/data/
khởi động lại: luôn luôn
cổng:
- ${DB_PORT}:${DB_PORT}
env_file:
- ./.env
phụ trợ:
xây dựng: ./src/phụ trợ
khối lượng:
- RUDZASV0021:/mã/lưu trữ/RUDZASV0021
- nhật ký:/mã/nhật ký
khởi động lại: luôn luôn
phụ thuộc:
- db
env_file:
- ./.env
nginx:
xây dựng:
bối cảnh: .
dockerfile: ./src/frontend/Dockerfile
khối lượng:
- ./docker-settings/default.conf:/etc/nginx/conf.d/default.conf:ro
khởi động lại: luôn luôn
cổng:
- 80:80
- 443:443
phụ thuộc:
- phụ trợ
Dockerfile phụ trợ
TỪ trăn:3.8.7-slim
WORKDIR/mã
SAO CHÉP . .
CHẠY cài đặt pip -r /code/requirements.txt
CHẠY cập nhật apt-get && cài đặt apt-get -y mc
CMD gunicorn entrypoints.wsgi:application --workers=4 --worker-class=gevent --timeout=90 --graceful-timeout=10 --bind 0.0.0.0:8000
Nginx Dockerfile
TỪ nginx:1.20.0
WORKDIR/lối vào
SAO CHÉP ./src/frontend/dist .
WORKDIR / chứng chỉ
SAO CHÉP ./cert/device.key .
SAO CHÉP ./cert/device.crt .
Nginx mặc định.conf
ngược dòng hello_django {
phụ trợ máy chủ: 8000 fail_timeout=0;
}
người phục vụ {
nghe 80;
trả lại 301 https://$host$request_uri;
}
người phục vụ {
nghe 443;
ssl trên;
ssl_certificate /cert/device.crt;
ssl_certificate_key /cert/device.key;
client_max_body_size 2G;
keepalive_timeout 5;
access_log /frontend/nginx-access.log;
error_log /frontend/nginx-error.log;
địa điểm / {
gốc / giao diện người dùng;
try_files $uri /index.html;
}
vị trí /api/ {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Máy chủ $http_host;
tắt proxy_buffering;
tắt proxy_request_buffering;
proxy_redirect tắt;
proxy_pass http://hello_django;
}
}