2014-06-24 13 views
15

Theo tiêu đề của câu hỏi này, làm thế nào để tôi đi về đăng nhập tất cả các trình duyệt tiêu đề khách hàng đã gửi trong Nginx? Tôi cũng muốn đăng nhập tiêu đề phản hồi. Lưu ý rằng tôi đang sử dụng nginx làm proxy ngược.Làm thế nào để đăng nhập tất cả các tiêu đề trong nginx?

Sau khi trải qua tài liệu, tôi hiểu rằng tôi có thể đăng nhập một tiêu đề cụ thể, nhưng tôi muốn ghi lại tất cả các tiêu đề.

Tôi sẽ chấp nhận giải pháp hacky!

+2

Tiêu đề http hợp lệ có thể rất dài và ghi chúng vào truy cập nginx.log là một ý tưởng tồi. Nếu bạn cần điều này để gỡ lỗi một cái gì đó, hãy sử dụng tcpdump với bộ lọc. –

+0

@mr_tron Tôi hiểu. Nhưng tôi bị ràng buộc bởi những hạn chế nhất định và thực sự cần phải đăng nhập tất cả các tiêu đề HTTP trong nginx cho bằng chứng của dự án khái niệm. Nếu nó không thể với nginx, tôi thực sự sẽ đi với các tùy chọn khác. – gauravphoenix

+0

Generaly là không thể, nhưng bạn có thể viết cho bạn module :) –

Trả lời

8

Sau nhiều nghiên cứu, tôi có thể kết luận rằng không thể thoát khỏi hộp.

Cập nhật- bạn có thể sử dụng openresty đi kèm với Lua. Sử dụng Lua người ta có thể làm những điều khá thú vị, bao gồm đăng nhập tất cả các tiêu đề để nói, Redis hoặc một số máy chủ khác

4

Như @gauravphoenix nói bạn cần opnresty đi kèm với Lua. Xem https://github.com/openresty/lua-nginx-module/ để cài đặt. Khi nó chạy rồi thêm vào nginx

header_filter_by_lua_block { 
    local h = ngx.req.get_headers() 
    for k, v in pairs(h) do 
    ngx.log(ngx.ERR, "Got header "..k..": "..v..";") 
    end 
} 

Kiểm tra nhật ký lỗi của bạn.

Các vấn đề liên quan