Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Apache und Tomcat auf selbem Port

Frage Linux Apache Server

Mitglied: Tiggalot

Tiggalot (Level 1) - Jetzt verbinden

09.08.2011, aktualisiert 10.08.2011, 5473 Aufrufe, 12 Kommentare

Hallo,

Ich würde gerne wissen ob es möglich ist einen Apache2 und einen Tomcat6 Server auf dem selben Server mit zwei NICs, und damit zwei IPs, auf dem selben Port zu betreiben.

Wie das nunmal so läuft habe ich einen Debian Server für zwei verschiedene Anwendungen. Zum einen hätten wir da eine eLearning Plattform, die sich mit einem klassischen LAMP begnügt, und dann hätten wir ein XWiki, das auf Java basiert und daher einen Tomcat braucht. Aufgrund programmiertechnischer Gegebenheiten funktioniert das XWiki wohl nicht 100%ig, wenn es durch mod_jk hinter dem Apache steckt...

Mein Server hat zwei IPs über zwei Netzwerkkarten, eth0 172.16.0.142 und eth1 172.16.0.144.

Zunächst habe ich den Tomcat Server installiert und dazu gebracht das er auf Port 80 läuft und nur auf eth0 anspricht.
Per apt-get wurden tomcat6 und tomcat6-admin installiert

/etc/default/tomcat6
01.
... 
02.
TOMCAT6_SECURITY=no 
03.
.... 
04.
AUTHBIND=yes 
05.
...
/etc/tomcat6/server.xml
01.
... 
02.
 <Connector port="80" protocol="HTTP/1.1" 
03.
               address="172.16.0.142" 
04.
               connectionTimeout="20000" 
05.
               URIEncoding="UTF-8" 
06.
               redirectPort="8443" /> 
07.
...
Nachdem ich den Tomcat gestartet habe konnte ich erfolgreich die Default Seite des Tomcat im Browser sehen.

Im nächsten Schritt habe ich den Apache installiert und versucht ihm zu sagen das er nur auf eth1 Port hören soll.
/etc/apache2/ports.conf
01.
... 
02.
Listen 172.16.0.144:80 
03.
...
Der Virtuelle Host den ich fürs eLearning angelegt habe soll auch nur auf eth1 reagieren
/etc/apache2/sites-enabled/learning
01.
<VirtualHost 172.16.0.144:80> 
02.
...
Wenn ich nun versuche den Apache zu starten bekomme ich einen Fehler, das der Port schon in Verwendung wäre. Wenn ich den Tomcat schließe kann ich den Apache starten. Danach den Tomcat wieder starten klappt allerdings nicht wirklich. In der Log Datei steht dann letztendlich ebenfalls das der Port nicht verfügbar ist.

Gibt es noch etwas das ich übersehen habe, oder ist es wirklich nicht Möglich den Tomcat und den Apache gleichzeitig auf Port 80 auf verschiedene IPs zu binden? Momentan habe ich den Tomcat auf Port 8080 umgestellt, und könnte das notfalls auch weiter so laufen lassen, aber leider hat der Nutzerkreis der auf das XWiki zugreift nur einen geringen IT-Wissensstand und ich habe keine Lust alle zwei Tage angerufen zu werden, weil etwas angeblich nicht funktioniert und in Wirklichkeit nur das :8080 vergessen wurde.

LG
Mitglied: 16568
09.08.2011 um 14:53 Uhr
Doch, dat geht...

Leider ist meine Glaskugel etwas trübe...


Lonesome Walker
Bitte warten ..
Mitglied: Tiggalot
09.08.2011 um 17:00 Uhr
Essig soll bei trübem Glas helfen ;)

Wäre dir sehr dankbar, wenn du da nochmal bissl nachschauen könntest.

Lg
Tigga
Bitte warten ..
Mitglied: 16568
09.08.2011 um 17:34 Uhr
Tja, leider ist die Glaskugel auch mit Essig sehr trübe...

Denk doch mal nach...
Was wird hier wohl fehlen...?


Lonesome Walker
Bitte warten ..
Mitglied: dog
09.08.2011 um 17:57 Uhr
Wenn schon nicht mod_jk, dann mod_proxy aber doch keinen Tomcat auf Port 80...
Bitte warten ..
Mitglied: Tiggalot
10.08.2011 um 09:00 Uhr
Vermutlich fehlt ein zweiter Server der das macht...
Sorry, wenn ich in den letzten 1,5 Tagen in denen ich mich damit befasst habe auf eine Lösung gestossen wäre die funktioniert, dann hätte ich hier keine Frage gestellt.
Habe bisher nur einfache LAMPs mit 2-3 virtuellen Hosts aufgesetzt, und von Tomcat habe ich nicht wirklich Ahnung.

Lg
Tigga
Bitte warten ..
Mitglied: 16568
10.08.2011 um 11:45 Uhr
Okay, dann zieh ich Dir halt mal den Wurm aus der Nase:

WELCHE VERSION von Debian?
Aktuell gepatcht?
Wie war Dein Installationsvorgehen?
(apt-get oder aptitude? Welche Pakete genau?)
Wie is der Inhalt Deiner Configs?

Man kann nur helfen, wenn man auch was preis gibt...

mod_jk ist bekannt dafür, nicht in jeder Konstellation zu laufen, aber bisher hatte ich nur wenig Probleme damit.
Wenn man dann noch die Chance hat, dafür sogar eine eigene IP zu kriegen, dann sehe ich da ohnehin keine Probleme...


Lonesome Walker
Bitte warten ..
Mitglied: Tiggalot
10.08.2011 um 16:45 Uhr
Die Installation habe ich gemäß einer Anleitung gemacht die ich bekommen habe. Mir wurde gesagt das wir wenn irgendmöglich mod_jk vermeiden sollen, weil es die Performance des auf XWiki basierenden Systems negativ beeinflusst.

Debian Wheezy DVD Installation gestartet. Experten Installation, da sonst Grub nicht mit dem SAS Controler klar kommt.
Reine Basisinstallation und dabei bereits einen schweizer Mirror als apt-Repository reingenommen. Root Zugriff per SSH gesperrt, lokalen Nutzer mit sudo Rechten ausgestattet.

Als allererstes danach habe ich die beiden Netzwerkkarten dazu gebracht beim Systemstart beide zu starten und sich vom DHCP eine Adresse zu beziehen. Also folgendes in der /etc/network/interfaces eingetragen
01.
# The loopback network interface 
02.
auto lo 
03.
iface lo inet loopback 
04.
 
05.
# The primary network interface 
06.
allow-hotplug eth0 
07.
allow-hotplug eth1
Danach mittels apt-get openssh-server installiert und fortan alles remote per SSH gemacht.

Per apt-get install zunächst den Tomcat und ein Java JDK installiert
01.
apt-get install tomcat6 tomcat6-admin sun-java6-jdk
Dann die /etc/default/tomcat6 mit vi bearbeitet, um das Java Verzeichnis anzupassen, Tomcat Security auf off zu setzen und Tomcat mittels AUTHBIND zu ermöglichen auf einem der well known Ports zu agieren
01.
TOMCAT6_USER=tomcat6 
02.
#<!-- EDITED HERE 
03.
JAVA_HOME=/usr/lib/jvm/java-6-sun 
04.
#<!-- EDITED --> 
05.
JAVA_OPTS="-Djava.awt.headless=true -Xmx128m -XX:+UseConcMarkSweepGC" 
06.
#<!-- EDITED HERE 
07.
TOMCAT6_SECURITY=no 
08.
#<!-- EDITED --> 
09.
#<!-- EDITED HERE 
10.
AUTHBIND=yes
#<!-- EDITED -->
Danach in der /etc/tomcat6/server.xml meinen Connector auf Port 80 an die 1. IP gebunden
01.
<?xml version='1.0' encoding='utf-8'?> 
02.
<!-- EDITED HERE --> 
03.
<Server port="9005" shutdown="SHUTDOWN"> 
04.
<!-- EDITED --> 
05.
 
06.
  <Listener className="org.apache.catalina.core.JasperListener" /> 
07.
  <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" /> 
08.
  <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener" /> 
09.
  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" /> 
10.
 
11.
  <GlobalNamingResources> 
12.
    <Resource name="UserDatabase" auth="Container" 
13.
              type="org.apache.catalina.UserDatabase" 
14.
              description="User database that can be updated and saved" 
15.
              factory="org.apache.catalina.users.MemoryUserDatabaseFactory" 
16.
              pathname="conf/tomcat-users.xml" /> 
17.
  </GlobalNamingResources> 
18.
 
19.
  <Service name="Catalina"> 
20.
 
21.
<!-- EDITED HERE --> 
22.
    <Connector port="80" protocol="HTTP/1.1" 
23.
               address="192.168.0.142" 
24.
               connectionTimeout="20000" 
25.
               URIEncoding="UTF-8" 
26.
               redirectPort="8443" /> 
27.
<!-- EDITED --> 
28.
 
29.
    <Engine name="Catalina" defaultHost="localhost"> 
30.
 
31.
      <Realm className="org.apache.catalina.realm.UserDatabaseRealm" 
32.
             resourceName="UserDatabase"/> 
33.
 
34.
      <Host name="localhost"  appBase="webapps" 
35.
            unpackWARs="true" autoDeploy="true" 
36.
            xmlValidation="false" xmlNamespaceAware="false"> 
37.
      </Host> 
38.
    </Engine> 
39.
  </Service> 
40.
</Server>
Die /etc/tomcat6/tomcat-users.xml bearbeitet
01.
<?xml version='1.0' encoding='utf-8'?> 
02.
<tomcat-users> 
03.
  <role rolename="tomcat"/> 
04.
  <role rolename="manager"/> 
05.
  <role rolename="admin"/> 
06.
  <user username="tomcat" password="*****" roles="tomcat,admin,manager"/> 
07.
</tomcat-users>
An diesem Punkt habe ich den Tomcat mit /etc/init.d/tomcat6 restart die Konfiguration übernehmen lassen und konnte auch über Port 80 auf die Default index.htm von Tomcat per Browser zugreifen

Als nächstes habe ich den Apache installiert
01.
apt-get install apache2
In der /etc/apache2/ports.conf habe ich den Apache auf die 2. IP gebunden
01.
<!-- EDITED HERE --> 
02.
Listen 192.168.0.144:80 
03.
<!-- EDITED --> 
04.
 
05.
<IfModule mod_ssl.c> 
06.
    Listen 443 
07.
</IfModule> 
08.
 
09.
<IfModule mod_gnutls.c> 
10.
    Listen 443 
11.
</IfModule>
Habe den default Eintrag aus /etc/apache2/sites-enabled gelöscht und mir aus dessen Konfiguration einen eigenen erstellt
/etc/apache2/sites-available/custom
01.
#<!-- EDITED HERE --> 
02.
<VirtualHost 192.168.0.144:80> 
03.
        ServerAdmin admin@server.com 
04.
        ServerName server2.server.com 
05.
        DocumentRoot /var/www/learning 
06.
        <Directory /> 
07.
                Options FollowSymLinks 
08.
                AllowOverride None 
09.
        </Directory> 
10.
        <Directory /var/www/learning/> 
11.
                Options Indexes FollowSymLinks MultiViews 
12.
                AllowOverride None 
13.
                Order allow,deny 
14.
                allow from all 
15.
        </Directory> 
16.
#<!-- EDITED --> 
17.
        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ 
18.
        <Directory "/usr/lib/cgi-bin"> 
19.
                AllowOverride None 
20.
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch 
21.
                Order allow,deny 
22.
                Allow from all 
23.
        </Directory> 
24.
 
25.
        ErrorLog ${APACHE_LOG_DIR}/error.log 
26.
 
27.
        LogLevel warn 
28.
 
29.
        CustomLog ${APACHE_LOG_DIR}/access.log combined 
30.
 
31.
</VirtualHost>
Dann einen Symlink in sites-enabled dazu erstellt.

Wenn ich nun versucht habe mit /etc/init.d/apache2 start den Apache zu starten bekam ich eine Fehlermeldung bekommen in der Sinngemäß stand das der Port schon in Verwendung ist.
Wenn ich den Tomcat gestoppt habe konnte ich den Apache starten, aber bekam danach beim Versuch den Tomcat zu starten eine Fehlermeldung...
Bitte warten ..
Mitglied: Tiggalot
10.08.2011 um 16:52 Uhr
Nachdem ich die Dokumentation zu mod_proxy überflogen (heute ist einer der Tage an denen man irgendwie zu gernichts kommt) habe weiß ich nicht ob das funktionieren wird.

Unser XWiki arbeitet mit verschiedenen Mandanten, die mit einer URL angesprochen werden müssen, und ich konnte jetzt auf die schnelle nichts finden um das zu gewährleisten. Aber wie gesagt, ich habe die Doku noch nicht wirklich verinnerlicht
Bitte warten ..
Mitglied: 16568
10.08.2011 um 18:16 Uhr
Aaalso:

1. Wheezy -> testing -> NEVER EVER PRODUKTIV.

2. sun-java6-jre <- is das auch installiert???

3. editiere mal Deine sites-available/custom auf den Anfang hier:
01.
NameVirtualHost 192.168.0.144:80 
02.
<VirtualHost 192.168.0.144:80>
4. in der ports.conf hast Du ja:
01.
<IfModule mod_ssl.c>  
02.
    Listen 443  
03.
</IfModule>  
04.
<IfModule mod_gnutls.c>  
05.
    Listen 443  
06.
</IfModule>
Da sollte man dann auch ma die IP dazukleben...

Und dann mal den Tomcatz abwürgen, Apache abwürgen, Tomcat starten, Apachen starten.

Was kommt nu?


Lonesome Walker
(Debian Consultant, der gerade mal eine VM aufsetzt, um das mit Wheezy nachzuvollziehen... :-P )
Was soll ich sagen... geht.
Bitte warten ..
Mitglied: Tiggalot
11.08.2011 um 10:10 Uhr
Bei mir hat das so direkt leider nicht funktioniert. Der Apache lief ohne Probleme an, aber der Tomcat hat zwar beim Start nichts direkt gesagt, aber erreichbar war er trotzdem nicht.

Hatte dann nochmal einen Blick in die catalina.out geworfen und dort stand dann
01.
java.net.SocketException: No such file or directory
Dies, und das Schlagwort Tomcat6, bei google eingegeben hat mich dazu geführt das ich beim authbind noch etwas anpassen musste.

Also mit vi die /etc/authbind/byuid/107 geöffnet und wie folgt geändert
01.
#0.0.0.0/0:1,1023 
02.
192.168.0.142/24:1,1023
Dann den Tomcat nochmal durchstarten lassen und jetzt funktioniert es... Irgendwie... Ich weiß nicht ob die miese Performance die ich da gerade rausbekomme am Server liegt, oder ob unsere IT-Abteilung mal wieder am Netz herumbastelt (machen die immer genau dann gerne wenn man es gerad nicht brauchen kann)...

Ich werde das jetzt mal übers Wochenende so laufen lassen. Sollte sich das von der Performance her nicht einpendeln werde ich es wieder zurückstellen.

Auf jeden Fall schonmal vielen herzlichen Dank für die Hilfe
Lg
Tigga
Bitte warten ..
Mitglied: 16568
11.08.2011 um 16:27 Uhr
Zum Thema Performance:

sehr viele berichten davon, seit sie den Tomcat auf einen anderen Port gebogen hätten, wären da Probleme.
Keine Ahnung, ob da was dran ist, aber ich war eh nie ein Fan von Tomcat...


Lonesome Walker
Bitte warten ..
Mitglied: Tiggalot
12.08.2011 um 07:51 Uhr
Mitlerweile hat es sich scheinbar eingependelt. Von der Performance kann ich subjektiv keinen Unterschied mehr zu vorher feststellen.
Entweder mußte sich der Server erst an die neue Situation gewöhnen, oder die IT hat wirklich wieder am Netz gebastelt.

Lg
Tigga
Bitte warten ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

(1)

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Ähnliche Inhalte
Windows Server
Zugriff auf IIS und Apache Tomcat Anwendung übers Internet (3)

Frage von horstvogel zum Thema Windows Server ...

Firewall
gelöst PfSense - DMZ und LAN auf selbem Port mit VLANs? (3)

Frage von PPR-Dev zum Thema Firewall ...

Firewall
Sophos Utm 9 Port 3000 für ProfiCash freigeben (4)

Frage von Floh21 zum Thema Firewall ...

Heiß diskutierte Inhalte
DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...

Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (10)

Frage von JayyyH zum Thema Switche und Hubs ...

Windows Server
Mailserver auf Windows Server 2012 (9)

Frage von StefanT81 zum Thema Windows Server ...

Backup
Clients als Server missbrauchen? (9)

Frage von 1410640014 zum Thema Backup ...