Có một câu hỏi tương tự nhưng giải pháp ở đó không hiệu quả với tôi.
Chúng tôi có phụ trợ quảng cáo nginx và uWSGI. Chúng tôi cần nginx lưu trữ phản hồi phụ trợ theo nội dung trong tiêu đề phản hồi.
Ví dụ, tôi chạy cuộn tròn -I https://example.com/api/project_data/
. sử dụng tcpdump
Tôi thấy phần phụ trợ trả lời:
HTTP/1.1 200 OK
Loại nội dung: ứng dụng/json
Khác nhau: Chấp nhận, Ngôn ngữ chấp nhận, Xuất xứ
Cho phép: NHẬN, HEAD, TÙY CHỌN
Kiểm soát bộ đệm: công khai, tuổi tối đa = 3600
X-Request-ID: 6aa...0d99
Tùy chọn khung X: TỪ CHỐI
X-Content-Type-Options: nosniff
Đặt cookie: longterm_session=45c6...67; Tên miền=example.com;
Tuy nhiên, phản hồi không được lưu vào bộ nhớ cache và nginx chuyển sang phần phụ trợ mỗi khi nhận được yêu cầu.
Cấu hình nginx:
http {
uwsgi_cache_path /var/local/nginx_cache levels=2:2 use_temp_path=off inactive=1h keys_zone=mycache:20m ;
....
người phục vụ {
....
uwsgi_cache mycache;
uwsgi_cache_key "$request_method$request_uri";
vị trí /api/project_data/ {
add_header X-Cache $upstream_cache_status;
add_header Pragma "công khai";
uwsgi_pass 127.0.0.1:49002;
bao gồm uwsgi_params;
uwsgi_cache mycache;
uwsgi_cache_key "$request_method$request_uri";
}
tôi đã sao chép uwsgi_cache
chỉ để đảm bảo an toàn vì afaik một số lệnh không được kế thừa vào địa điểm
. Ngoài ra, có bộ đệm x: BỎ LỠ
trong phản hồi nginx gửi cho khách hàng.
Tôi đang làm gì sai?