Giữ nguyên các đường dẫn được mã hóa trong tuyến chuyển tiếp HTTP NGINX hiện có
Dùng request_uri khi hợp đồng chuyển tiếp cần đường dẫn và truy vấn gốc, đồng thời giữ nguyên việc xác thực đích hiện có.
Một tuyến được xây dựng từ $uri có thể gửi một đường dẫn khác với đường dẫn mà máy khách cung cấp. Với http://service.example/files/a%2Fb?view=raw, dấu gạch chéo được thoát là một phần của cách viết gốc đó.
| Biến | Biểu diễn |
|---|---|
| $uri | URI chuẩn hóa hiện tại, có thể thay đổi trong quá trình xử lý nội bộ |
| $request_uri | URI yêu cầu gốc, bao gồm các đối số truy vấn của nó |
Trong một cách bố trí proxy chuyển tiếp HTTP hiện có vốn đã chọn và xác thực thẩm quyền đích, đường dẫn và truy vấn gốc có thể được giữ nguyên bằng:
proxy_pass http://$http_host$request_uri;$http_host cung cấp thẩm quyền của tiêu đề Host được chọn trong cách bố trí này. Giữ nguyên các hạn chế máy khách của trình lắng nghe, chính sách đích và cấu hình phân giải tên.
Thay $uri$is_args$args bằng biểu thức này sẽ thay đổi biểu diễn được gửi đi; biểu thức trước dùng đường dẫn chuẩn hóa và các đối số hiện tại. Hãy chọn theo hợp đồng của điểm cuối, đặc biệt khi các dấu phân cách được thoát có ý nghĩa hoặc chữ ký bao trùm mục tiêu gốc. Việc viết lại đường dẫn có chủ đích có yêu cầu khác.
Điều này áp dụng cho yêu cầu HTTP hữu hình. Đường hầm HTTPS CONNECT mang yêu cầu sau đó bên trong TLS và cần cách xử lý được hỗ trợ riêng.