Apache con ssl attivato vhost restituisce casuale 400 bad request
Domanda
Ho impostato due locali vhosts (http e self-signed " https) per billing.example.com e cercando in firefox con firebug.Http vhost solo scopo di reindirizzare tutte le richieste https.
Quasi ogni volta che l'ho richiesta pagina https, uno o due file con associate le risorse (immagini, js, css, ecc...) e a volte la pagina php stessa restituire 400 bad request in firebug finestra, a volte una o due file visualizzati come carico per un lungo periodo di tempo.Quando clicco sul problema di collegamento in firebug, file viene caricato come si deve.Inoltre, la richiesta non valida o non caricati i file cambia quasi ogni volta che sto caricamento della pagina.
Tutte le idee?
Server:Ubuntu 10.04, Apache/2.2.14 con mod_ssl
Vhosts:
Listen 80
<VirtualHost *:80>
ServerName billing.example.com
UseCanonicalName On
DocumentRoot /code/site/billing
...
RewriteEngine On
RewriteRule ^/(.*)$ https://billing.example.com/$1
</VirtualHost>
Listen 443
<VirtualHost *:443>
ServerName billing.example.com
UseCanonicalName On
DocumentRoot /code/site/billing
...
SSLEngine On
SSLCertificateFile /code/site/ssl/example.crt
SSLCertificateKeyFile /code/site/ssl/example.key
</VirtualHost>
Il resto sono impostazioni di default da ubuntu apache2.
Soluzione
Ho avuto questo problema con apache 2.2.9 e l'aggiornamento di apache 2.2.22 risolto il problema per me.
Vorrei ottenere casuale 400 codici di risposta su alcune delle pagine richieste.A volte le immagini, a volte le richieste AJAX.Occasionalmente, sarebbe la stessa pagina che restituisce un 400 con questo messaggio.
Bad Request Il tuo browser ha inviato una richiesta che il server non riusciva a capire.Richiesta campo di intestazione mancante ':' separatore.live
Ho trovato il seguente tappeto relazione che sembrava correlati.Il bug è stato risolto in apache 2.2.15 : https://bugzilla.redhat.com/show_bug.cgi?id=652335
Penso che questo bug è la causa di un sacco di errori casuali quando si utilizza https:Il tuo browser ha inviato una richiesta che il server non riusciva a capire Richiesta campo di intestazione mancante ':' separatore.
Così ho pensato di provare ad aggiornare all'ultima apache con le ultime mod_ssl - e che sembrava funzionare.
Altri suggerimenti
Per la parte SSL, è possibile attivare UseCanonicalName Off
Per gli host virtuali, è probabile che utilizza un dominio diverso rispetto al server principale e che potrebbe causare di cercare i file al di fuori del l'host virtuale.
Per completezza sulla porta 80, aggiungerei [R, L] per il redirect.
RewriteEngine On
RewriteRule ^/(.*) http://billing.example.com/$1 [L,R]