Próbowałem zainstalować Apache Tomcat 5.5 i 6 na 2 różne sposoby ( ze źródła i przy pomocy apt-get ) na Debian 5 i Debian 6 - bez powodzenia. Serwer działa, ale nie mogę się z nim połączyć.
netstat -a
:
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 *:ssh *:* LISTEN
tcp 0 0 `hostname`:ssh my_home_ip:4318 ESTABLISHED
tcp 0 52 `hostname`:ssh my_home_ip:remctl ESTABLISHED
tcp6 0 0 [::]:8009 [::]:* LISTEN
tcp6 0 0 [::]:8180 [::]:* LISTEN
tcp6 0 0 [::]:ssh [::]:* LISTEN
udp 0 0 *:mdns *:*
udp 0 0 *:33059 *:*
udp6 0 0 [::]:mdns [::]:*
udp6 0 0 [::]:43829 [::]:*
netstat -tnlp
:
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1416/sshd
tcp6 0 0 :::8009 :::* LISTEN 7880/jsvc
tcp6 0 0 :::8180 :::* LISTEN 7880/jsvc
tcp6 0 0 :::22 :::* LISTEN 1416/sshd
ps aux | grep tomcat
:
root 7878 0.0 0.0 1984 352 ? Ss 21:55 0:00 /usr/bin/jsvc -user tomcat55 -cp /usr/share/java/commons-daemon.jar:/usr/share/tomcat5.5/bin/bootstrap.jar -outfile SYSLOG -errfile SYSLOG -pidfile /var/run/tomcat5.5.pid -Djava.awt.headless=true -Xmx128M -Djava.endorsed.dirs=/usr/share/tomcat5.5/common/endorsed -Dcatalina.base=/var/lib/tomcat5.5 -Dcatalina.home=/usr/share/tomcat5.5 -Djava.io.tmpdir=/var/lib/tomcat5.5/temp -Djava.security.manager -Djava.security.policy=/var/lib/tomcat5.5/conf/catalina.policy -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=/var/lib/tomcat5.5/conf/logging.properties org.apache.catalina.startup.Bootstrap
root 7879 0.0 0.0 1984 460 ? S 21:55 0:00 /usr/bin/jsvc -user tomcat55 -cp /usr/share/java/commons-daemon.jar:/usr/share/tomcat5.5/bin/bootstrap.jar -outfile SYSLOG -errfile SYSLOG -pidfile /var/run/tomcat5.5.pid -Djava.awt.headless=true -Xmx128M -Djava.endorsed.dirs=/usr/share/tomcat5.5/common/endorsed -Dcatalina.base=/var/lib/tomcat5.5 -Dcatalina.home=/usr/share/tomcat5.5 -Djava.io.tmpdir=/var/lib/tomcat5.5/temp -Djava.security.manager -Djava.security.policy=/var/lib/tomcat5.5/conf/catalina.policy -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=/var/lib/tomcat5.5/conf/logging.properties org.apache.catalina.startup.Bootstrap
tomcat55 7880 0.1 5.3 324068 27932 ? Sl 21:55 0:01 /usr/bin/jsvc -user tomcat55 -cp /usr/share/java/commons-daemon.jar:/usr/share/tomcat5.5/bin/bootstrap.jar -outfile SYSLOG -errfile SYSLOG -pidfile /var/run/tomcat5.5.pid -Djava.awt.headless=true -Xmx128M -Djava.endorsed.dirs=/usr/share/tomcat5.5/common/endorsed -Dcatalina.base=/var/lib/tomcat5.5 -Dcatalina.home=/usr/share/tomcat5.5 -Djava.io.tmpdir=/var/lib/tomcat5.5/temp -Djava.security.manager -Djava.security.policy=/var/lib/tomcat5.5/conf/catalina.policy -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=/var/lib/tomcat5.5/conf/logging.properties org.apache.catalina.startup.Bootstrap
root 8013 0.0 0.0 1716 492 pts/0 R+ 22:13 0:00 grep tomcat
nmap
kontrola portu:
# nmap localhost -p 8180
Starting Nmap 4.62 ( http://nmap.org ) at 2012-03-03
Interesting ports on localhost.localdomain (127.0.0.1):
PORT STATE SERVICE
8180/tcp closed unknown
Nmap done: 1 IP address (1 host up) scanned in 0.025 seconds
# nmap localhost -p 8009
Starting Nmap 4.62 ( http://nmap.org ) at 2012-03-03
Interesting ports on localhost.localdomain (127.0.0.1):
PORT STATE SERVICE
8009/tcp closed ajp13
Nmap done: 1 IP address (1 host up) scanned in 0.027 seconds
# nmap localhost -p 22
Starting Nmap 4.62 ( http://nmap.org ) at 2012-03-03
Interesting ports on localhost.localdomain (127.0.0.1):
PORT STATE SERVICE
22/tcp open ssh
Nmap done: 1 IP address (1 host up) scanned in 0.026 seconds
Dziennik Catalina:
Mar 3, 2012 9:55:26 PM org.apache.catalina.core.AprLifecycleListener lifecycleEvent
INFO: The Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path:
Mar 3, 2012 9:55:26 PM org.apache.coyote.http11.Http11BaseProtocol init
INFO: Initializing Coyote HTTP/1.1 on http-8180
Mar 3, 2012 9:55:26 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 486 ms
Mar 3, 2012 9:55:27 PM org.apache.catalina.core.StandardService start
INFO: Starting service Catalina
Mar 3, 2012 9:55:27 PM org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/5.5
Mar 3, 2012 9:55:27 PM org.apache.catalina.core.StandardHost start
INFO: XML validation disabled
Mar 3, 2012 9:55:27 PM org.apache.coyote.http11.Http11BaseProtocol start
INFO: Starting Coyote HTTP/1.1 on http-8180
Mar 3, 2012 9:55:27 PM org.apache.jk.common.ChannelSocket init
INFO: JK: ajp13 listening on /0.0.0.0:8009
Mar 3, 2012 9:55:27 PM org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=0/24 config=null
Mar 3, 2012 9:55:27 PM org.apache.catalina.storeconfig.StoreLoader load
INFO: Find registry server-registry.xml at classpath resource
Mar 3, 2012 9:55:27 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 321 ms
java -version
:
java version "1.5.0_22"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_22-b03)
Java HotSpot(TM) Client VM (build 1.5.0_22-b03, mixed mode)
Próbowałem także przypisać Tomcat mojemu zewnętrznemu adresowi IP VPS. Otrzymuję również błąd wystąpił podczas inicjowania maszyny wirtualnej. Nie można zarezerwować wystarczającej ilości miejsca na stertę obiektów. błąd od czasu do czasu, ale myślę, że to nie jest problem, ponieważ Tomcat i tak nie odpowiada.
Przepraszam za tak dużo tekstu - starałem się być informacyjny. Proszę pomóż mi. Z góry dziękuję!
AKTUALIZACJA
Jak stwierdzono w odpowiedzi, Tomcat nasłuchiwał na porcie IPv6. Aby to zmienić, musiałem dodać zmienną środowiskową dla maszyny JAVA do /etc/profile
pliku
JAVA_OPTS="-Djava.net.preferIPv4Stack=true"
export JAVA_OPTS
... przeładuj plik: source /etc/profile
... a następnie skonfiguruj główny Tomcat, Connector
edytując /etc/tomcat5.5/server.xml
(w moim przypadku) w następujący sposób:
<Connector port="8080" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" address="0.0.0.0" />
Zwróć uwagę, address="0.0.0.0"
która mówi Tomcatowi, aby powiązał się z adresem IPv4.
Dziękuję za poświęcony czas i życzę miłego dnia wszystkim.
::1
zamiast localhost?nmap -6 ::1 -p 8009 PORT STATE SERVICE 8009/tcp open ajp13
. Czy mógłbyś napisać to jako odpowiedź, abym mógł ją zaakceptować?Odpowiedzi:
Tomcat wydaje się słuchać tylko na adres IPv6 loopback
::1
.źródło
$JAVA_OPTS
w/etc/profile
do wartości-Djava.net.preferIPv4Stack=true
i konfiguracji Tomcat aby nasłuchiwaćaddress="0.0.0.0"
.Pachnie jak problem z zaporą ogniową - spróbuj otworzyć odpowiednie reguły w swojej zaporze ogniowej (rozważ po prostu wpuszczenie / wyjęcie wszystkiego
lo
, nigdy nie widziałem uzasadnionego powodu ograniczania ruchu w pętli zwrotnej).źródło