Trong Nginx, chúng tôi đã cố gắng chuyển hướng một URL như sau:
http://example.com/some/path -> http://192.168.1.24
nơi người dùng vẫn thấy URL gốc trong trình duyệt của họ. Khi người dùng được chuyển hướng, giả sử họ nhấp vào liên kết đến /section/index.html
, chúng tôi muốn điều này đưa ra yêu cầu dẫn đến chuyển hướng
http://example.com/some/path/section/index.html -> http://192.168.1.24/section/index.html
và một lần nữa vẫn bảo tồn URL gốc.
Các nỗ lực của chúng tôi đã liên quan đến các giải pháp khác nhau bằng cách sử dụng proxy và quy tắc viết lại, và bên dưới cho thấy cấu hình đã đưa chúng tôi đến gần nhất với một giải pháp (lưu ý rằng đây là cấu hình máy chủ web cho example.com
máy chủ web). Tuy nhiên, vẫn còn hai vấn đề với điều này:
- Nó không thực hiện viết lại đúng cách, trong đó URL yêu cầu mà máy chủ web nhận được
http://192.168.1.24
bao gồm/some/path
và do đó không phục vụ trang được yêu cầu. Khi bạn di chuột vào một liên kết khi một trang đã được phục vụ,
/some/path
thiếu URLserver { listen 80; server_name www.example.com; location /some/path/ { proxy_pass http://192.168.1.24; proxy_redirect http://www.example.com/some/path http://192.168.1.24; proxy_set_header Host $host; } location / { index index.html; root /var/www/example.com/htdocs; } }
Chúng tôi đang tìm kiếm một giải pháp chỉ liên quan đến việc thay đổi cấu hình máy chủ web trên example.com
. Chúng tôi có thể thay đổi cấu hình trên 192.168.1.24
(cũng là Nginx), tuy nhiên chúng tôi muốn thử và tránh điều này vì chúng tôi sẽ cần lặp lại thiết lập này cho hàng trăm máy chủ khác nhau có quyền truy cập được ủy quyền example.com
.