Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 9418|Yanıt: 0

[Web] Nginx'in çözücüsünü kullanarak dinamik upstreamler uygulayın

[Bağlantıyı kopyala]
Yayınlandı 27.07.2019 22:23:00 | | |
Son zamanlarda işimde bu yöne ihtiyaç duyuldu, upstream tamamen dinamik, istemci tarafından belirleniyor, başlangıçta bazı hatalar var ve son olarak DNS servisi çözümleyici aracılığıyla belirleniyor, spesifik süreç şöyle.

1. Çukura adım atmaya başla

nginx'in konfigürasyonu şöyledir:

Bu tür bir isteği gönderdiğimde:


Aşağıdaki hata bildirildi:

access.log:
127.0.0.1 - - [14/Sep/2017:23:37:10 +0800] "GET / HTTP/1.1" 502 179 "-" "curl/7.29.0"

error.log:
2017/09/14 23:38:31 [hata] 25307#25307: *48 çözümleyici çözüm tanımlamıyorwww.baidu.com, istemci: 127.0.0.1, sunucu: localhost, istek: "GET / HTTP/1.1", host: "127.0.0.1:8001"
Bu sorunun bir çözümcünün belirtilmemesinin özel upstreamwww.baidu.com yarattığını belirttiği açıktır.

2. Alan adı çözümlemesini tanımlamak için Resolver kullanın

Değiştirilmiş nginx konfigürasyonu şöyledir:

Şimdi istekler normal 200:

req:
curl "127.0.0.1:8001/" -H "upstream-host:www.baidu.com" -Voa
curl "127.0.0.1:8001/" -H "upstream-host:www.qq.com" -Voa

access.log:
127.0.0.1 - - [14/Sep/2017:23:44:01 +0800] "GET / HTTP/1.1" 200 2381 "-" "curl/7.29.0"
127.0.0.1 - - [14/Sep/2017:23:44:07 +0800] "GET / HTTP/1.1" 200 244182 "-" "curl/7.29.0"
3. Çözümleyici talimatları

Çözümleyicinin sözdizimi şöyledir:

Syntax: resolver address ... [valid=time] [ipv6=on|off];
Default:    —
Context:    http, server, location
Birden fazla DNS servisini yapılandırabilirsiniz, nginx DNS servislerine erişmek için anket kullanır, nginx DNS alan adı çözümleme sonuçlarını önbelleker, önbellek süresi geçerli ile belirlenir ve IPv6 ile IPv6 açık veya kapalı görüntülenir.

resolver_timeout, DNS çözümleme için zaman aşımını belirtmek için kullanılır.





Önceki:Kişisel bir FTP oluşturma yazılımını paylaşın
Önümüzdeki:Alibaba Cloud OSS Nginx ters proxy yapılandırması
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com