Yakın gelecekte 3 nginx sunucum olacak. Biri, diğeri için SSL için ters bir proxy'dir. Yani, örneğin, ben gidiyorum:
https://www.mysitename.com/site1
Bu örnekteki diğer iki sunucu site1 ve site2'dir. Proxy'ye SSL sertifikası yükledim ve ters proxy kullanmak istiyorum (3'ü dahili bir ağda bulunduğundan SSL gerekli değildir.) site1 için bir ray uygulaması olan 8081 numaralı bağlantı noktası ve site2 için 8082 numaralı bağlantı noktası.
Bu bende var...
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://;
}
}
Bu yüzden, www.mysitename.com/site1 adresini ziyaret ettiğimde, normalde localhost'tan gelecek olanı geri döndürmek istiyorum: 8081 (veya daha sonra başka bir sunucu için dahili bir IP hattı).
Localhost çağrısından "site1" i çıkarmanın bir yolu var mı? Yaptığı gibi localhost kullanıyor: 8081 / site1. Site1 ve site2 siteleri "/ login / index" veya "/ whatever / list", vb. Türlerinde "site1" içermez.
Site denetleyicilerinde (redirect_to kullanarak) / login / index / / whatever / list gibi şeylerden geçen yönlendirmeler de vardır.
Site1 kullanmak için sitenin URL’lerini yeniden tasarlamak zorunda mı kalacağım? Yoksa NGINX proxy bunu çözebilir mi?
Teşekkürler.