Bir alt yolu Nginx ile harici bir ana bilgisayara yönlendirme


14

Nginx aynı alt ağda bulunan başka bir sunucuya bir alt yol yönlendirerek oldukça basit bir harita oluşturmak gerekir.

  • Nginx sunucusu: 192.168.0.2
  • Tomcat sunucusu: 192.168.0.3:8443

Bunu sunucu bölümüne koymaya çalıştım

    location /tomcatapi/ {
        rewrite /tomcatapi/(.*) $1 break;
        proxy_pass http://192.168.0.3:8443;
    }

ama tüm http://www.myservice.com/tomcatapi/ erişim elde 500 hata sayfası ve nginx günlük dosyasında bu hata var:

    the rewritten URI has a zero length

Bu konfte eksik olan ne?

Yanıtlar:


13

Yeniden yazma satırınıza bakalım:

rewrite /tomcatapi/(.*) $1 break;

Biti, parantez içine alırsınız (yani her şeyden sonra /tomcatapi/), atanır $1ve bunu yeniden yazılmış URI'nizin tek içeriği olarak kullanırsınız.

/tomcatapi/Örneğinizde, bundan sonra hiçbir şey yoktur , bu yüzden yeniden yazma boş kalır ve nginx bunun hakkında inliyor.

Yeniden yazma kuralını şu şekilde değiştirirseniz

rewrite /tomcatapi/(.*) /$1 break;

her zaman en azından /yeniden yazma çıktısında kalırsınız .


Yanıtınız için teşekkürler, yine de "/" ekledim ama şimdi url'ye erişirken tarayıcı yükleme durumunda kaldı ve günlük dosyasında şimdi farklı bir hata görüyorum: yukarı akış yukarı akıştan yanıt başlığını okurken geçerli bir HTTP / 1.0 üstbilgisi göndermedi
carlo.polisini

Tomcat sunucunuzdaki günlükler ne diyor?
Flup

Hatayı buldum, hata uygulamanın http değil sadece https'de mevcut olmasıydı! Yani sözdizimi düzeltmenizden hemen sonra gerçekleşti, işe yaraması için http'yi https ile değiştirdi.
carlo.polisini
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.