Nginx: ana bilgisayar üstbilgisini seçilen sunucuya nasıl ayarlanır (yük dengeleme)


10

Yük dengeleyici olarak çalışan bir sitem var. Site A.

Yalnızca bir alan adına sahip başka sitelerim var. Bu yüzden sadece onlara yönlendirme yaparsanız ana bilgisayar adı bulunamadı diyor.

Bu yüzden başlığı bir şeye manuel olarak ayarlarsam, yalnızca o site görünür.

proxy_set_header Host xxxxSeçilen sunucu adresine nasıl ayarlayabilirim ? Bu şekilde her yeniden yönlendirme isteğinin farklı ve uygun ana bilgisayar üstbilgisi olur.

Diğer 2 sitem URL'ye dayalı olabilir ve ana bilgisayar üstbilgisine göre çalışamazsa sorun olmaz.

worker_processes  1;

error_log  logs/error.log;
error_log  logs/error.log  notice;
error_log  logs/error.log  info;
error_log  logs/error.log  debug;

pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    upstream myapp1 {
        #server localhost:3333;
        server www.asd.com:80;
    }

    server {
        listen 80;

        location / {
            proxy_set_header Host            $upstream_addr;  // should become somehow www.asd.com right now this code doesn't work
            proxy_set_header X-Forwarded-For $remote_addr;
            proxy_pass http://myapp1;
        }
    }
}

$server_addrnedense 127.0.0.1 neden ??
Muhammed Umer

sunucu www.asd.com:80seçildiğinde ana başlık www.asd.com olmak istiyorum
Muhammed Umer

ya da yazmak için bir yol varsa if(server1) than host = a; ,if(server2) than host = b;
Muhammed Umer

1
Mesele şu ki, uygun ana bilgisayar üstbilgisi, bence, istemciden ne alırsanız almalısınız. İstemci www.asd.com istiyorsa, ana bilgisayar üstbilgisi bu olmalıdır. Bu, gerektiğinde arka uçta doğru URL'leri doğru bir şekilde oluşturmaya, çerezler vb. İçin uygun alan adlarını ayarlamaya yardımcı olacaktır.
Florin Asăvoaie

hem istemci hem de orta sunucu benim.
Muhammed Umer

Yanıtlar:


6

Üstbilgiyi, burada belgelendiği gibi gelen ana bilgisayar değişkenine ayarlamanız gerekir :

proxy_set_header Host $host;

This variable is equal to line Host in *the header of request* or nameyani istemci / tarayıcı ne söylerse seçsin odur.
Muhammed Umer

Yapmak istediğiniz bu, değil mi? İstemci, proxy'nizden bir kaynak / sanal ana bilgisayar ister ve sanal bir ana bilgisayar sunmanız gerekir. Sunulacak sanal ana bilgisayar istemci / borç alıcı tarafından seçilir.
Jeff Wong

sunucu tarafından rastgele hiçbir sanal konak
seçilmiyor

1
Böyle bir şey mi? İki düzey proxy oluşturma ve ana makineyi ikinci katmandaki bitiş noktasına sabit kodlu olarak ayarlayın serverfault.com/a/622782/287634
Jeff Wong

Bir göz atacağım, ama sanırım orada bazı şeyleri iptal ettiğimden beri görüyorum
Muhammed Umer

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.