Apache VirtualHost (aynı sunucuda çalışan apache) aracılığıyla sunulacak olan birden fazla web uygulamasıyla bir sunucu kurmaya çalışıyorum. Ana kısıtım, her web uygulamasının SSL şifrelemesi kullanması gerektiğidir. Bir süre googling yaptıktan ve stackoverflow ile ilgili diğer soruları inceledikten sonra, VirtualHost için aşağıdaki yapılandırmayı yazdım:
<VirtualHost 1.2.3.4:443>
ServerName host.example.org
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
SSLProxyEngine On
ProxyRequests Off
ProxyPreserveHost On
ProxyPass / https://localhost:8443/
ProxyPassReverse / https://localhost:8443/
</VirtualHost>
Https://host.example.org:8443 erişilebilir olmasına rağmen , sanal ana bilgisayar yapılandırmamın amacını yitiren https://host.example.org değil. Firefox, sunucuya başarıyla bağlanmasına rağmen bağlantının kesildiğinden şikayet ediyor. Ayrıca apache'nin error.log dosyasında aşağıdaki uyarıyı alıyorum:
proxy: no HTTP 0.9 request (with no host line) on incoming request and preserve host set forcing hostname to be host.example.org for uri
Web uygulamasında (bir Tomcat sunucusu) erişim günlüğü garip bir erişim isteği gösteriyor:
"?O^A^C / HTTP/1.1" 302
Aşağıda, doğrudan https://host.example.org:8443’e bağlandığımda elde ettiğim doğru erişim yanıtı verilmiştir :
"GET / HTTP/1.1" 302
Son olarak, SSL kullanmadığımda sanal ana bilgisayarın mükemmel çalıştığını da belirtmeliyim.
Bu işi nasıl yapabilirim?
ProxyPreserveHost On
, neredeyse her zaman yanlıştır yararsız ve hemen hemen her zaman sonlarıProxyPassReverse
. Bir yan notProxyRequests off
olarak, varsayılan, böylece gereksiz.