Di Nginx kami telah mencoba mengarahkan ulang URL sebagai berikut:
http://example.com/some/path -> http://192.168.1.24
di mana pengguna masih melihat URL asli di browser mereka. Setelah pengguna diarahkan, misalkan mereka mengklik tautan /section/index.html
, kami ingin ini membuat permintaan yang mengarah ke pengalihan
http://example.com/some/path/section/index.html -> http://192.168.1.24/section/index.html
dan sekali lagi masih mempertahankan URL asli.
Upaya kami telah melibatkan berbagai solusi menggunakan proxy dan aturan penulisan ulang, dan di bawah ini menunjukkan konfigurasi yang telah membawa kami paling dekat ke solusi (perhatikan bahwa ini adalah konfigurasi server web untuk example.com
server web). Namun, masih ada dua masalah dengan ini:
- Itu tidak melakukan penulisan ulang dengan benar, karena URL permintaan yang diterima oleh server web
http://192.168.1.24
termasuk/some/path
dan karena itu gagal untuk melayani halaman yang diperlukan. Saat Anda mengarahkan kursor ke tautan setelah halaman disajikan,
/some/path
hilang dari 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; } }
Kami mencari solusi yang hanya melibatkan pengubahan konfigurasi server web example.com
. Kami dapat mengubah konfigurasi pada 192.168.1.24
(juga Nginx), namun kami ingin mencoba dan menghindari ini karena kami perlu mengulangi pengaturan ini untuk ratusan server yang berbeda yang aksesnya diproksikan melalui example.com
.