Điểm:0

Nginx trả về 200 thay vì 206

lá cờ cn

Tôi có một thiết lập máy chủ Nginx (openresty) có các tệp lớn. Khi khách hàng muốn một tệp phạm vi Nginx sẽ gửi lại 200 thay vì 206.

Đây là ví dụ về bài kiểm tra độ cong của tôi:

curl -v -I -r 0- -X NHẬN http://172.29.22.11/myBigFile.bin
* Đang thử 172.29.22.11:80...
* Bộ TCP_NODELAY
* Đã kết nối với 172.29.22.11 (172.29.22.11) cổng 80 (#0)
> NHẬN /myBigFile.bin HTTP/1.1
> Máy chủ: 172.29.22.11
> Phạm vi: byte=0-
> Tác nhân người dùng: curl/7.68.0
> Chấp nhận: */*
> 
* Đánh dấu gói là không hỗ trợ đa dụng
< HTTP/1.1 200 OK
HTTP/1.1 200 OK
< Chuyển mã hóa: chunked
Mã hóa truyền: chunked
< Kết nối: giữ nguyên
Kết nối: giữ nguyên
< Hết hạn: Thứ tư, ngày 21 tháng 12 năm 2022 09:10:00 GMT
Hết hạn: Thứ tư, ngày 21 tháng 12 năm 2022 09:10:00 GMT
< Kiểm soát bộ đệm: max-age=31536000
Kiểm soát bộ đệm: max-age=31536000
< Access-Control-Allow-Headers: *
Kiểm soát truy cập-Cho phép-Tiêu đề: *
< Kiểm soát truy cập-Cho phép-Xuất xứ: *
Kiểm soát truy cập-Cho phép-Xuất xứ: *
< myCacheStatus: HIT
myCacheStatus: HIT
< Pragma: công khai
Pragma: công khai
< Kiểm soát bộ đệm: công khai
Kiểm soát bộ đệm: công khai
 
< 
* Đã tìm thấy phần thừa: phần thừa = 448 url =/myBigFile.bin A (phần thân có độ dài bằng 0)
* Kết nối #0 đến máy chủ 172.29.22.11 còn nguyên vẹn

Làm cách nào tôi có thể xác định Nginx để trả về đúng 206 về điều này?

----- Thêm cấu hình của tôi -----

        địa điểm / {
            nội bộ;
            
            proxy_cache my_cache;
        
            proxy_cache_key $uri;

            # đặt thời gian ceching cho 200 lần quay lại -> thành 7 ngày
            proxy_cache_valid 200 7d;

            # Xóa cờ tôi không muốn
            more_clear_headers 'Kiểm soát truy cập-Cho phép-Tiêu đề';
            more_clear_headers 'Kiểm soát truy cập-Cho phép-Xuất xứ';
            more_clear_headers 'truy cập*';
            more_clear_headers 'bố trí nội dung';
            more_clear_headers 'Ngày';
            more_clear_headers 'x-proxy-cache';
            more_clear_headers 'Máy chủ';

            # thêm tiêu đề để xử lý CORS
            add_header Access-Control-Allow-Headers '*';
            add_header Access-Control-Allow-Origin '*';

            # để giảm Bandwisth tôi sử dụng nén
            bật gzip;

            # thiết lập proxy và hướng dẫn nó cech ngay cả khi không có Kiểm soát bộ đệm
            proxy_ignore_headers X-Accel-Expires Hết hạn kiểm soát bộ đệm;
            bật proxy_cache_lock;
            proxy_cache_lock_timeout 0s;
            proxy_cache_lock_age những năm 200;
            đang cập nhật proxy_cache_use_stale;


            # chạy proxy ngược
            proxy_pass http://0.0.0.0:3000;

            # đặt ceching cục bộ ở phía máy khách hiện tại chúng tôi sẽ bắt đầu sau 365 ngày
            hết hạn 365d;
            add_header Thực dụng công khai;
            add_header Kiểm soát bộ đệm "công khai";

        }
lá cờ in
Đó phải là cài đặt mặc định. Vui lòng hiển thị cấu hình của bạn.
lá cờ jp
Có thể trùng lặp https://serverfault.com/questions/965209/multipart-ranges-in-nginx-reverse-proxy
Meir avatar
lá cờ cn
@GeraldSchneider Tôi đã thêm cấu hình
Meir avatar
lá cờ cn
@AlexD Các câu trả lời không tốt (sử dụng véc ni/không lưu trữ các yêu cầu đó)
lá cờ in
Vì vậy, nginx chỉ hoạt động như một proxy ngược. Điều đó có nghĩa là vấn đề rất có thể là máy chủ phụ trợ của bạn, không phải nginx.
Meir avatar
lá cờ cn
@GeraldSchneider làm cách nào để thêm nginX chức năng trả về 206 khi tệp đã được lưu vào bộ đệm? và làm thế nào tôi có thể làm điều đó ngay cả khi máy chủ phụ trợ không hỗ trợ điều đó?
Meir avatar
lá cờ cn
Tôi thấy lạ là vì lý do đó mà tôi phải chuyển sang sơn bóng
djdomi avatar
lá cờ za
bạn không thể buộc bộ nhớ đệm trên nginx. tuy nhiên, nếu dịch vụ của bạn được nghe trên 0.0.0.0, thì có thể truy cập trực tiếp từ internet, thông thường bạn sử dụng 127.0.0.1 thay vì 0.0.0.0

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.