mod_jk Failed opening socket
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 :
Code:
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 |
errno(22) = Invalid argument
appel qui echoue dans mod_jk
Code:
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;
} |
jk.conf
Code:
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> |
workers.properties
Code:
1 2 3 4 5 6
|
ps=/
worker.list=tomcat1
worker.tomcat1.port=8009
worker.tomcat1.host=localhost
worker.tomcat1.type=ajp13 |
virtual host:
Code:
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> |
tomcat server.xml
Code:
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>
... |
netstat -putla | grep 8009
Code:
1 2
|
tcp6 0 0 [::]:8009 [::]:* LISTEN 6031/java |
Le plus bizarre est que j'arrive à me connecter en telent sur le port 8009 ...
telnet localhost 8009
Code:
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.