Dalam waktu dekat saya akan memiliki 3 server nginx. Salah satunya adalah proxy terbalik untuk SSL untuk dua lainnya. Jadi, misalnya, saya pergi ke:
https://www.mysitename.com/site1
Dua server lain dalam contoh ini adalah site1 dan site2. Saya menginstal sertifikat SSL pada proksi dan saya ingin menggunakan proksi terbalik (SSL tidak diperlukan karena ketiganya berada di jaringan internal). Untuk tujuan pengujian saya harus mendengarkan nginx pada 443 untuk SSL / reverse-proxy, dengarkan port 8081 yang merupakan aplikasi rel untuk site1, dan 8082 untuk site2.
Aku punya ini...
server {
listen 443;
server_name mysitename.com;
ssl on;
ssl_certificate ssl/mysitename.com.crt;
ssl_certificate_key ssl/mysitename.com.key;
keepalive_timeout 60;
location /site1 {
proxy_pass http://localhost:8081;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_redirect http:// https://;
}
location /site2 {
proxy_pass http://localhost:8082;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_redirect http:// https://;
}
}
Jadi ketika saya mengunjungi www.mysitename.com/site1 pada dasarnya saya ingin mengembalikan apa yang biasanya datang dari localhost: 8081 (atau kemudian ke bawah IP internal untuk server lain).
Apakah ada cara untuk menghapusnya "site1" dari panggilan localhost? Apa yang tampaknya dilakukan adalah menggunakan localhost: 8081 / site1. Situs site1 dan site2 bersifat "/ login / index" atau "/ apapun / daftar", dll, tanpa "site1".
Ada juga pengalihan di pengontrol situs (menggunakan redirect_to) yang beralih dari hal-hal seperti / login / index ke / apapun / daftar.
Apakah saya harus mendesain ulang URL situs untuk menggunakan site1? Atau bisakah proxy NGINX mengetahuinya?
Terima kasih.