Bonjour,
cela fait maintenant 2 jours que j'essaye de régler mon problème de passerelle apache <-> tomcat.
Peut être qu'une personne ici aura l'amabilité de m'aider dans ma tâche.
Les 2 tournent sur la même machine virtuelle debian lenny (base vmware esxi sur ovh).
Lorsque j'essaye d'accéder à mon site j'ai une erreur 503 :
Service Temporarily Unavailable
Apache tourne avec root
Tomcat avec l'utilisateur tomcat
Voici les logs de mod_jk :
errno(22) = Invalid argument
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 [error] jk_open_socket::jk_connect.c (444): socket() failed (errno=22) [info] ajp_connect_to_endpoint::jk_ajp_common.c (959): Failed opening socket to (127.0.0.1:8009) (errno=22) [error] ajp_send_request::jk_ajp_common.c (1585): (tomcat1) connecting to backend failed. Tomcat is probably not started or is listening on the wrong port (errno=22) [info] ajp_service::jk_ajp_common.c (2540): (tomcat1) sending request to tomcat failed (recoverable), because of error during request sending (attempt=1) [error] jk_open_socket::jk_connect.c (444): socket() failed (errno=22) [info] ajp_connect_to_endpoint::jk_ajp_common.c (959): Failed opening socket to (127.0.0.1:8009) (errno=22) [error] ajp_send_request::jk_ajp_common.c (1585): (tomcat1) connecting to backend failed. Tomcat is probably not started or is listening on the wrong port (errno=22) [info] ajp_service::jk_ajp_common.c (2540): (tomcat1) sending request to tomcat failed (recoverable), because of error during request sending (attempt=2) [error] ajp_service::jk_ajp_common.c (2559): (tomcat1) connecting to tomcat failed. [info] jk_handler::mod_jk.c (2618): Service error=-3 for worker=tomcat1
appel qui echoue dans mod_jk
jk.conf
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 sd = socket(AF_INET, SOCK_STREAM | flags, 0); if (!IS_VALID_SOCKET(sd)) { JK_GET_SOCKET_ERRNO(); jk_log(l, JK_LOG_ERROR, "socket() failed (errno=%d)", errno); JK_TRACE_EXIT(l); return JK_INVALID_SOCKET; }
workers.properties
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <IfModule mod_jk.c> JkWorkersFile /etc/apache2/workers.properties JkLogFile /var/log/apache2/mod_jk.log JkShmFile /var/log/apache2/mod_jk.shm </IfModule>
virtual host:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6ps=/ worker.list=tomcat1 worker.tomcat1.port=8009 worker.tomcat1.host=localhost worker.tomcat1.type=ajp13
tomcat server.xml
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 <VirtualHost *:80> ServerName www.toto.fr ServerAlias www.toto.com toto.fr toto.com ErrorLog /var/log/apache2/main_error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog /var/log/apache2/main_access.log combined JkMount /* tomcat1 JkLogFile /var/log/apache2/main_jk.log JkLogLevel info </VirtualHost>
netstat -putla | grep 8009
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 <Server port="8005" shutdown="SHUTDOWN"> ... <Listener className="org.apache.jk.config.ApacheConfig" modJk="/usr/lib/apache2/modules/mod_jk.so" workersConfig="/etc/apache2/workers.properties"/> ... <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> ... <Engine name="Catalina" defaultHost="www.toto.com"> ... <Host name="www.toto.fr" appBase="mainapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false" workdir="mainwork"> <Alias>www.toto.com</Alias> </Host> </Engine> ...
Le plus bizarre est que j'arrive à me connecter en telent sur le port 8009 ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 tcp6 0 0 [::]:8009 [::]:* LISTEN 6031/java
telnet localhost 8009
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Trying ::1... Connected to localhost. Escape character is '^]'.
Autre question : Le listener org.apache.jk.config.ApacheConfig est-il vraiment utile ?
Merci d'avance pour l'aide qu'on m'apportera.
Partager