Zusätzlich zum Standard-Apache auf AWS EC2 Linux habe ich Tomcat 8 installiert und darauf einen Webdienst bereitgestellt.
Die aktuelle URL (die funktioniert) lautethttp://example.com:8080/MyService/api/generatePath
Ich möchte dies mit einer Subdomain api.mydomain.com verkürzen, sodass ich diese URL verwenden kann:http://api.example.com/generatePath.
Folgendes habe ich getan /etc/httpd/conf/httpd.conf
, aber es funktioniert nicht:
<VirtualHost *:80>
ServerName api.example.com
ProxyRequests Off
ProxyPreserveHost On
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://localhost:8080/MyService/api
ProxyPassReverse / http://localhost:8080/MyService/api
</VirtualHost>
Antwort1
Haben Sie zuerst den Mod-Proxy auf Apache aktiviert? Versuchen Sie dann, ProxyPreserveHost On
Stellen Sie außerdem sicher, dass der Port geöffnet wird. Am einfachsten können Sie dies unterhttp://www.yougetsignal.com/tools/open-ports/(Websiteadresse und Port 80 eingeben)
Hoffe das hilft
Antwort2
(1) Um den /MyService/
Teil Ihrer URL zu entfernen, benennen Sie Ihre MyService.war
Datei in um ROOT.war
und kopieren Sie sie mit in Ihren Webapps-Ordner sudo cp
. Normalerweise sollte Ihre Tomcat-Installation automatisch ein ROOT-Verzeichnis im selben Ordner generieren.
(2) Um :8080 zu entfernen, rufen Sie die Site stattdessen über :80 auf, das nicht in der URL-Leiste aufgeführt ist, und verwenden Sie die httpd.conf
von Ihnen angegebene Installation. Bearbeiten Sie die folgenden beiden Dinge, damit sie wie folgt aussehen.
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
<VirtualHost *:80>
ServerName api.example.com
ProxyRequests On
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
<Location "/">
Order allow,deny
Allow from all
</Location>
</VirtualHost>