Domanda

Sto usando apache su una macchina a soddisfare le richieste a JBoss su un'altra macchina. Tutto funziona bene quando ho STARTUP JBoss e sono in grado di accedere al web app, ma dopo poche ore ho finalmente iniziare a ricevere "Il server proxy ha ricevuto una risposta non valida da un monte di server" errori. Se ricomincio JBoss poi tutto funziona bene ancora una volta, ma alcune ore più tardi ho lo stesso problema ...

Qualcuno sa che cosa potrebbe causare questo problema? Non ho accesso ai log di Apache in questo momento (mi dovrebbe in poche ore), ma sembra che sia qualcosa con JBoss in quanto il riavvio è la correzione temporanea.

Sto usando jboss4.2.3 e Apache 1.3 con mod_jk. Io non sto trovando eventuali errori nei registri di JBoss e l'applicazione che sto cercando di raggiungere non sta facendo tutto ciò che richiede molto tempo. La pagina principale è solo una pagina di accesso semplice. Ho le porte 8009 e 8080 aperto per la comunicazione tra il server app e web server. Non so quale configurazione è sbagliato.

È stato utile?

Soluzione

Questo suona per me come mod_jk di Apache è sempre fuori sincrono con il connettore AJP in JBoss. Il protocollo AJP utilizza persistenti, connessioni riutilizzate tra web server e application server, e se il protocollo non è configurato esattamente lo stesso su entrambe le estremità della connessione, eventualmente le connessioni andare stantio ad un'estremità del collegamento, ma l'altra estremità continua a cercare di usarli. Il sintomo è un errore 502.

Il mio primo suggerimento è questo: non utilizzare mod_jk a meno che non è necessario. E 'complessa e difficile da configurare per ottenere un sistema stabile. Se non avete bisogno le sue caratteristiche di bilanciamento del carico o di prestazione, io suggerisco di usare mod_proxy invece. E 'altrettanto buono per la maggior parte delle applicazioni, e abbastanza facile.

Ma se si vuole attenersi a mod_jk, La prima cosa che devi fare è che si sta utilizzando la versione più recente mod_jk (attualmente 1.2.28), dal momento che le versioni più vecchie sono notoriamente difficili da configurare. Per fortuna, mod_jk è ancora supportato su Apache 1.3.

Successivamente, verificare il file di log mod_jk (configurato utilizzando la direttiva JkLogFile). Se stai vedendo un mucchio di errori relativi alla connessione di tutto il tempo le cose vanno male, è necessario ottimizzare il vostro config jk ad entrambe le estremità della connessione. Il colpevole più probabile è le impostazioni di timeout, quindi leggere su quelli qui , e assicurarsi che entrambe le estremità cantano dallo stesso foglio inno.

Altri suggerimenti

Ho visto anche questo avviene usando Apache e Tomcat. Nella mia situazione particolare, l'applicazione distribuita per Tomcat aveva un bug che ha causato le discussioni di risposta da appendere. Alla fine Tomcat corse fuori di thread di lavoro, e apache non è stato in grado di stabilire una connessione.

Nel nostro caso, le connessioni al database non sono stati sempre rilasciati correttamente di nuovo in un pool di connessioni, e altri thread erano in attesa a tempo indeterminato per ottenere una connessione dal pool. Tuttavia, tutto ciò che mantiene indefinitamente in vita un filo di gestione delle risposte potrebbe portare allo stesso problema.

Ho avuto lo stesso problema ma con Apache e Glassfish. Infine, ho potuto risolvere il problema configurando lo stesso timeout in entrambi i lati.

In Glassfish modificare la configurazione ascoltatore e in Apache modifiying i worker.properties con questa linea:

worker.worker_name.socket_timeout=300

Non sono sicuro sul modo di configurare questo in JBoss, si può modificare il web.xml o cluster-service.xml.

Se si collega Apache con Tomcat ed è finito in questo blog proprio come me, ha un senso.

L'accettazione di collegamento per AJP / 1.3 in Tomcat risolto questo errore per me. Non dimenticate di commentare il servizio sul protocollo HTTP.

**<!--<Connector port="8081" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443" />
-->
<Connector port="8081" protocol="AJP/1.3"
           connectionTimeout="20000"
           redirectPort="8443" />**
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top