2011-04-21 15 views
9

Java apache-tomcat'te X-FORWARDED-PROTO ile çalışmayla ilgili olarak bana yardımcı olabilir.java apache-tomcat'te X-FORWARDED-PROTO Kullanımı

Uygulama kurulumu, Cisco LoadBalancer ile görüşen apache web sunucusu ile yapılan tomcat konuşmaları, en sonunda dengeleyici sayfalarını istemciye yayımlar (tomcat -> apache2 -> load balancer -> client).

SSL Sertifikası, LoadBalancer'a yüklenir ve https isteği ele alınır. Benim ihtiyacım, uygulamanın X-FORWARDED-PROTO kullanacağı ve sayfaları HTTP veya HTTPS olarak değiştireceği şekilde davranmasıdır.

Web sayfamın üstbilgi dosyalarını kontrol ederek X-FORWARDED-PROTO parametresini bulamadım. LoadBalancer yapılandırmasına da erişemiyorum ve BT, HTTP & HTTPS isteği arasında ayrım yapmak için X-FORWARDED-PROTO kullanmamızı önerdi.

Tomcat veya apache düzeyinde yapılacak herhangi bir yapılandırma var, böylece X-FORWARDED-PROTO parametresini döndürecektir. Ya da konfigürasyonun LoadBalancer'da ele alınması gerektiğidir.

cevap

1

Bu sağlık kontrolü, HTTPS

+2

Lol. Soruyu bile okudun mu? Tomcat'ta yardım istedi ... –

20

Ben bunu tüm Artık anladım sahip eminim gerektirmez/durum olduğunu varsayar yönetme bağlantıları

<VirtualHost *:80> 
    ... 
    RewriteEngine On 
    RewriteCond %{HTTP:X-Forwarded-Proto} !https 
    RewriteRule !/status https://%{SERVER_NAME}%{REQUEST_URI} [L,R] 
</VirtualHost> 

apache vhostu Bu ekle ama yine de cevabı ekleyeceğim.

Sen conf/tomcat server.xml motor etiketinde sınıf org.apache.catalina.valves.RemoteIpValve kullanabilirsiniz. çok önemlidir nota

<Valve className="org.apache.catalina.valves.RemoteIpValve" 
      internalProxies="192.168.1.XXX" 
      remoteIpHeader="x-forwarded-for" 
      remoteIpProxiesHeader="x-forwarded-by" 
      protocolHeader="x-forwarded-proto" 
    /> 

şey internalProxies değerini ayarlamaktır. Bu ayarlanmamışsa ve standart olmayan bir ağ kurulumunu kullanıyorsanız, tomcat'in x iletimli başlıklarını kontrol etmeyeceği bazı sorunlara yol açabilir ve varsayılan olarak "http" durumuna gelecektir. Güvenlik nedeniyle, varsayılanlarla çalışsa bile onu ayarlamanızı öneririm.

Daha fazla bilgi için here'a bakın.

+1

Tomcat'a proxy istekleri için Apache kullanıyorsanız, bunu Apache'de SSL yapılandırmanıza eklemeniz gerekir: RequestHeader set X-Forwarded-Proto "https" –

+4

Tomcat 7 alanları biraz farklı - http://tomcat.apache.org/tomcat-7.0-doc/api/org/apache/catalina/valves/RemoteIpValve.html –