Định cấu hình haproxy để trả về 204 cho một trận đấu ACL nhất định


8

Tôi muốn trả về mã lỗi HTTP 204 nếu bất kỳ ai cố gắng truy cập một đường dẫn cụ thể trên máy chủ web của tôi. Tôi có thể đặt một trong những máy chủ web của mình trả về lỗi 204 và trỏ haproxy vào đó làm phụ trợ. Tuy nhiên vì không có thông tin nào được gửi đi, tôi nghĩ rằng điều này có thể được thực hiện từ chính haproxy. Không cần phải làm phiền các máy chủ web thực tế của tôi.

Tôi đã thử tạo một phụ trợ sẽ tạo ra lỗi 204 như sau:

frontend ...
    ...
    acl is_always204 path_beg /thisone
    use_backend always204 if is_always204
    ...

backend always204
    errorfile 404 /etc/haproxy-shared/errors/204.http

Tệp 204.http chứa:

HTTP/1.0 204 No Content Cache-Control: no-cache Connection: close Content-Type: image/png

Khi tôi bắt đầu haproxy, tôi gặp lỗi này:

parsing [/etc/haproxy/haproxy:51] : status code 404 not handled, error customization will be ignored.

Tôi nghĩ rằng tôi có thể đang đi về điều này sai cách. Bất cứ ai cũng có thể đề xuất một cách để buộc haproxy trả lại 204 cho một trận đấu acl nhất định?


2
Bạn đã thử làm cho lỗi này 503chưa? Không có máy chủ phụ trợ thực tế, vì vậy HAproxy sẽ phục vụ 503phản hồi.
Felix Frank

Bạn có nghĩ rằng 204 là mã trạng thái chính xác cho tình huống này không? Theo tài liệu HAProxy , 204 và 404 không được hỗ trợ mã trả về. Có vẻ như điều này có thể muốn trả lại 403 . 204 gợi ý rằng yêu cầu đã được gửi đến máy chủ.
Anthony Fammartino

1
Hấp dẫn. Content-Typekhông có ý nghĩa gì trong bối cảnh này, nhưng thực sự không có đủ thông tin ở đây để tìm hiểu bối cảnh là gì. Tất nhiên HTTP 204 hiếm khi được sử dụng. Cảm giác của tôi về 204 là máy chủ gốc có lẽ nên gửi nó, nếu có một kịch bản sử dụng nó có ý nghĩa gì cả.
Michael Hampton

Câu trả lời:


2

Như đã đề cập trong các nhận xét, bạn không thể chỉ định một tệp lỗi cho 404, vì HAProxy sẽ không bao giờ tạo ra 404. Bạn phải sử dụng một cái gì đó như 503, mà HAProxy thực sự phát ra và có tệp lỗi cấu hình. Tập tin 204 của bạn có thể được sử dụng như hiện tại, chỉ cần thay thế 503 cho 204 trong cấu hình của bạn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.