Tôi muốn sử dụng auth_request để đặt tiêu đề theo yêu cầu xác thực thành công và sau đó chuyển tiêu đề đó tới dòng nội tuyến proxy tiếp theo sẽ xử lý yêu cầu thực tế.Đặt tiêu đề bằng NGINX auth_request proxy
Tôi đã thiết lập NGINX và các proxy khác nhau để làm việc của họ, tuy nhiên tôi không chắc chắn cách đặt tiêu đề từ máy chủ (biểu đồ AUTH PROXY) mà tôi đang sử dụng cho yêu cầu xác thực sao cho tiêu đề đó được chuyển đến máy chủ tiếp theo (backend sERVER trong sơ đồ)
NGINX ---- auth request ----> AUTH PROXY
|
| <--- 201 <------ SUCCESS
|
----> underlying request ----> BACKEND SERVER
nginx cấu hình của tôi trông giống như
server {
listen 9123;
resolver 10.3.0.2;
resolver_timeout 30;
location/{
auth_request /_auth;
proxy_set_header x-user $http_x_user;
proxy_pass http://backend_server;
}
location = /_auth {
internal;
proxy_pass https://auth;
proxy_pass_request_body off;
proxy_set_header Content-Length "";
proxy_set_header X-Original-URI $request_uri;
}
}
Khi tôi thực hiện yêu cầu thực tế tôi thấy sau trong nginx bản ghi gỡ lỗi (đây là phần của phản hồi từ máy chủ auth):
2013/10/14 17:46:42 [debug] 31222#0: *4 http proxy header: "Content-Type: text/html; charset=utf-8"
2013/10/14 17:46:42 [debug] 31222#0: *4 http proxy header: "Date: Mon, 14 Oct 2013 17:46:42 GMT"
2013/10/14 17:46:42 [debug] 31222#0: *4 http proxy header: "Server: nginx/1.2.5"
2013/10/14 17:46:42 [debug] 31222#0: *4 http proxy header: "Vary: Cookie"
2013/10/14 17:46:42 [debug] 31222#0: *4 http proxy header: "x-user: 1"
Tôi muốn lấy tiêu đề x-user
và chuyển thông qua máy chủ phụ trợ.
Tôi đã thử các kết hợp khác nhau trong khối location /
nhưng chưa có kết quả nào trong số chúng hoạt động. Ví dụ.
proxy_set_header x-user $upstream_http_x_user;
proxy_set_header x-user $http_x_user;
proxy_set_header x-user $sent_http_x_user;
proxy_pass_header x-user
Không ai trong số những vẻ làm việc. Bất kỳ ý tưởng làm thế nào tôi có thể hoàn thành nhiệm vụ này? Xin lưu ý rằng đó là proxy ủy quyền đang đặt tiêu đề mà tôi muốn chuyển tới máy chủ phụ trợ,
Cảm ơn, các công trình của nó –
Tôi làm cách nào để chuyển người dùng $ tới cookie? –
@ShivKumar mở ra một câu hỏi mới cho điều đó. – mjallday