4
Nginx Redirect ผ่าน Proxy, Rewrite และ Preserve URL
ใน Nginx เราพยายามเปลี่ยนเส้นทาง URL ดังนี้: http://example.com/some/path -> http://192.168.1.24 ตำแหน่งที่ผู้ใช้ยังคงเห็น URL ดั้งเดิมในเบราว์เซอร์ของตน เมื่อผู้ใช้ถูกเปลี่ยนเส้นทางกล่าวว่าพวกเขาคลิกที่ลิงค์ไป/section/index.htmlเราต้องการให้คำขอที่นำไปสู่การเปลี่ยนเส้นทาง http://example.com/some/path/section/index.html -> http://192.168.1.24/section/index.html และอีกครั้งยังคงรักษา URL เดิม ความพยายามของเราเกี่ยวข้องกับการแก้ปัญหาต่าง ๆ โดยใช้พร็อกซีและกฎการเขียนซ้ำและด้านล่างแสดงการกำหนดค่าที่ทำให้เราใกล้เคียงกับโซลูชันมากที่สุด (โปรดทราบว่านี่คือการกำหนดค่าเว็บเซิร์ฟเวอร์สำหรับexample.comเว็บเซิร์ฟเวอร์) อย่างไรก็ตามยังมีปัญหาสองข้อสำหรับสิ่งนี้: มันไม่ได้เขียนใหม่อย่างถูกต้องในที่ URL คำขอที่ได้รับจากเว็บเซิร์ฟเวอร์http://192.168.1.24รวมถึง/some/pathและดังนั้นจึงไม่สามารถให้บริการหน้าที่จำเป็น เมื่อคุณวางบนลิงค์เมื่อเพจได้รับการบริการ/some/pathหายไปจาก URL server { 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 …