Nginx'te alt alana bağlı olarak proxy'yi farklı yerlere nasıl tersine çevirebilirim?


15

Hepsi bir makineye ve bir IP adresine işaret eden birden fazla alt alanım var. Bu makinede, nginx'in ters proxy olarak davranmasını istiyorum ve makineye erişmek için hangi alt alanın kullanıldığına bağlı olarak, proxy'yi farklı bir sunucuya tersine çevirmek istiyorum. Nginx'i ters proxy kullanımı olarak kullandığımı gördüğüm tüm örnekler location, ancak anladığım kadarıyla, farklı alt alanlar için değil, yalnızca yol için çalışıyor. İstediğimi nasıl başarabilirim?


2
Bu biraz fazla geniş olabilir. Zaten denedikleriniz hakkında daha fazla bilgi gönderebilir misiniz?
Will

Yanıtlar:


28

Sorunuzu tamamen yanlış okumadıkça: Her bir alt alan için sunucu blokları ayarlamanız ve bu alt alanın kökü için doğru ters proxy'yi tanımlamanız yeterlidir:

 server {
        server_name subdomain1.example.com;
        location / {
            proxy_pass       http://hostname1:port1;
        }
 }
 server {
        server_name subdomain2.example.com;
        location / {
            proxy_pass       http://hostname2:port2;
        }
 }

Geç cevap verdiğim için üzgünüm, ama işe yaradı!
markasoftware

3

Hemen hemen aynı şekilde.

location /foo {
    rewrite ^/foo(.+)$ /$1 break;
    proxy_pass http://foo;
}

location /bar {
    rewrite ^/bar(.+)$ /$1 break;
    proxy_pass http://bar;
}

1
Aradığım şey tam olarak bu değildi. Kabul edilen yanıtı görün
markasoftware

1
Çiğneme ve sindirim talep eden yüktür, benim değil.
drookie
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.