Tomcat'teki yönlendirme portu ne için?


13

Tomcat dokümantasyonunu anlamak zor ve server.xml'e bakmak, anlaşılması zor olabilecek bir bağlantı noktası salatası bulacaksınız, çünkü dokümantasyonda gerçekten doğru veya kapsamlı bir şekilde açıklanmadı.

Örneğin, yapılandırma dosyasındaki bu satır server.xml

<Connector port="8345" protocol="AJP/1.3" redirectPort="9875" />

Burada başka bir yönlendirme bağlantı noktası daha bulabilirsiniz:

<Connector executor="tomcatThreadPool"
               port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" /> 

Konektör bağlantı noktasının ne yaptığını anlıyorum. İlk durumda, bunu apache'de bir işçi oluşturmak ve oraya göndermek için kullanırsınız, ikincisinde tomcat'e doğrudan erişmek için bir bağlantı noktası açarsınız. Ancak yönlendirme limanına gelince işler bulanıklaşır.

Ajp portu için tomcat dokümantasyonunda verilen açıklama:

Bu Bağlayıcı SSL olmayan istekleri destekliyorsa ve eşleşmesi için SSL aktarımı gerektiren bir istek alınırsa, Catalina isteği otomatik olarak burada belirtilen bağlantı noktası numarasına yönlendirir.

Her zaman 1024'ün üzerinde rastgele bir yönlendirme bağlantı noktası seçiyorum ve işe yarıyor,

Fakat bu ne zaman uygulamaya girer? Bir isteğin SSL aktarımı gerektirdiğini nasıl bilebilir?

Tomcat modülünü çalıştıran bir uydu sunucum var. Bu modül, trafiği ana sunucudan apache ile ajp konektörüne yönlendirerek veya tam tersi şekilde yürürlüğe girer.

Ana sunucuda https, apache'de uygulanır. Bu, tüm isteklerin şifreli veya düz metin olarak uydu sunucusuna gönderildiği anlamına mı geliyor? Uydu sunucusuna 8080 bağlantı noktası üzerinden erişirsem şifrelenmez, ancak bunun ana sunucuya yönlendirilen trafik için de geçerli olup olmadığını ve bu yönlendirme bağlantı noktasının nerede geçerli olduğunu merak ediyorum.

Yanıtlar:


6

Belgelerde tanımlandığı gibi, yönlendirme bağlantı noktası, SSL isteği sunucuya geldiğinde resme gelecektir ve http bağlayıcı bağlantı noktası SSL isteklerini işleyemediğinden, tanımlanan bağlantı noktasına yönlendirecektir. Ancak bunların, tanımlanan yönlendirme bağlantı noktasının SSL isteklerini işlemek için bir bağlayıcı bağlantı noktası olarak işlev göreceği server.xml dosyasında tanımlanan başka bir bölüm olması gerekir. Örneğin, http isteklerinin 80 numaralı bağlantı noktasıyla ve https isteğinin 443 numaralı bağlantı noktasıyla işlenmesini istiyorsanız server.xml şöyle görünecektir:

<Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="443" />

<Connector port="443" protocol="org.apache.coyote.http11.Http11Protocol" SSLEnabled="true" scheme="https" secure="true" sslProtocol="TLS" keystoreFile="/path/to/kestorefile" keystorePass="my_keystore_password"/>

Anahtar deposu web sitenizin SSL sertifikasıdır.

Yönlendirme bağlantı noktası olan diğer bölümü bağlayıcı bağlantı noktası olarak yapılandırmazsanız, istekleriniz söz konusu bağlantı noktasına yönlendirilmez. Örneğin, web sitesi SSL isteklerini desteklemiyorsa ve bu web sitesine https isteği göndermeye çalışırsanız , tarayıcıda Güvenli Bağlantı Başarısız gibi bir hata gösterilir.


Yeterince adil. Http'nin aksine ajp yapılandırmasına ne dersiniz? Ayrıca, bahsettiğiniz gibi 1024'ün altındaki bağlantı noktalarını kullanmak iyi bir fikir mi? Bu, tomcat'ı kök olarak çalıştırmak anlamına gelir ve bu iyi değildir.
Ulukai

1
Ajp hakkında fazla bir fikrim yok, ancak yönlendirme http ile aynı şekilde çalışmalıdır. 1024'ün altındaki bağlantı noktalarını kullanma hakkında tamamen size kalmış. 80 ve 443, https ve https protokolü için varsayılan bağlantı noktalarıdır, bunları url'de açıkça belirtmeye gerek yoktur. Standart olmayan portları kullanmak istiyorsanız size kalmış. Ayrıca tomcat'ı root ile çalıştırdığınızda, dağıtılan uygulamaya bağlıdır. Uygulamanıza güvenlik perspektifiyle güvenmiyorsanız, tomcat'i root ile çalıştırmamalısınız. Diğer bir yol ise, 80 ve 443 numaralı bağlantı noktasında çalıştırmak için apache veya nginx'i proxy olarak kullanabilir ve isteğinizi tomcat'e yeniden yönlendirebilirsiniz.
Gaurav Pundir

Diğer yaklaşımların yanı sıraiptables trafiği Tomcat'e yönlendirmek için de iyi çalıştığını not edeceğim .
SeldomNeedy

Bu açıklama eksik. SSL olmayanlardan bir SSL bağlantı noktasına yönlendiriyorsanız, server.xml dosyasına hedef bağlayıcıyı eklemek yeterli değildir. Ayrıca web.xml dosyasındaki <security-constraint> bölümünü yapılandırmak gerekir. Bkz. Stackoverflow.com/questions/9526425/…
luiscolorado
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.