it-swarm.com.de

Laufen Apache und Tomcat auf verschiedenen Subdomains zusammen?

Gepostet auf ServerFault, aber keine Antwort erhalten. Ich hoffe, ich habe mehr Glück auf der Ubuntu-Site.

Ich habe versucht, dies den ganzen heutigen Tag zum Laufen zu bringen. Ich habe einen Server, der in die Domäne aufgelöst wird example.com. Dies führt Apache2 und Tomcat 6 aus. Die Anforderung besteht darin, Anforderungen an example.com an Apache2 und app.example.com an Tomcat zu leiten. Ich weiß, dass ich einen VirtualHost-Proxy-Pass ausführen muss, damit dies funktioniert . Hier sind die Einstellungen auf meinem Server.

/ etc/hosts Datei sieht ungefähr so ​​aus

127.0.0.1     localhost localhost.localdomain example.com app.example.com 

Ich habe zwei virtuelle Host-Dateien für die verschiedenen Domänen in/etc/Apache2/sites-enabled

/ etc/Apache2/sites-enabled/example.com sieht so aus

<VirtualHost *:80>

  # Admin email, Server Name (domain name) and any aliases
  ServerAdmin [email protected]
  ServerName  example.com
  ServerAlias www.example.com

  DocumentRoot /var/www
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>

        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
        </Directory>

        ErrorLog /var/log/Apache2/error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog /var/log/Apache2/access.log combined

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>


</VirtualHost>

/ etc/Apache2/sites-enabled/app.example.com Datei sieht so aus

<VirtualHost *:80>
  ServerName  app.example.com
  ServerAlias www.app.example.com

  ProxyPreserveHost On
  ProxyPass / http://localhost:8080/
  ProxyPassReverse / http://localhost:8080/
  SetEnv force-proxy-request-1.0 1
  SetEnv proxy-nokeepalive 1
</VirtualHost>

mod_proxy und mod_rewrite sind beide in der Apache-Instanz aktiviert. Ich habe einen CNAME-Eintrag für example.com und app.example.com. Wenn ich auf app.example.com zugreife, erhalte ich eine verbotene 403, die besagt, dass ich keinen Zugriff auf/auf dem Server habe. Was mache ich falsch?

4
Ritesh M Nayak

Ich habe ein ähnliches Problem, wenn ich eine solche Konstruktion in der virtuellen Host-Definition verwende:

ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/

In meinem Fall funktioniert es, wenn ich auf die Anwendung zeige:

  • mit diesen können Sie eine solche Adresse umleiten: http://app.example.com/confluence

    ProxyPass /confluence/ http://localhost:8180/confluence/ 
    ProxyPassReverse /confluence/ http://localhost:8180/confluence/
    
  • mit diesen können Sie eine solche Adresse umleiten: http://app.example.com zur richtigen Anwendung

    ProxyPass / http://localhost:8180/confluence/ 
    ProxyPass / http://localhost:8180/confluence/
    
2
Lukasz Stelmach

Versuchen:

VirtualHost 'app.example.com:80'

anstatt von

VirtualHost '*:80'