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.