Ich habe Google durchsucht und konnte bisher keine Antwort finden. Ich verwende einen Server unter Ubuntu und habe Programme installiert, die verschiedene nicht standardmäßige Ports verwenden. Jeder Port verwendet einen anderen, in meinem Fall 9090, 9091, 9092, 9093 und 9094. Ich habe einen Apache-Server eingerichtet und einen Domain-Namen, der jetzt meinen Server erreichen kann, anstatt meine IP-Adresse eingeben zu müssen. Ich suche nach einer Möglichkeit, Verzeichnisse zu erstellen, die auf die verschiedenen Ports verweisen, die ich aufgelistet habe. Ich möchte so etwas wie:
https://www.mydomain.com/app1 https://www.mydomain.com/app2 http://www.mydomain.com/app3
Einige der Ports sind über SSL, andere nicht. Ich habe sie nur der Einfachheit halber in die richtige Reihenfolge gebracht (9090-9094). Ich möchte, dass / app1 auf SSL-Port 9090 zeigt, / app2 auf SSL-Port 9091 zeigt und / app3 auf Nicht-SSL-Port 9092 zeigt. Gibt es eine einfache Möglichkeit, dies zu tun? Ich habe versucht, ProxyPass und dergleichen basierend auf anderen Posts hinzuzufügen, aber nichts hat funktioniert. Muss ich eine neue Site hinzufügen?
Wenn es sich dabei um das Bearbeiten von Dateien handelt, was ich erwarte, wäre es sehr dankbar, wenn Sie den Standardspeicherort der Datei auflisten und angeben könnten, wo Dinge hinzugefügt werden sollen. Ich sah immer wieder Posts mit der Aufforderung, ProxyPass hinzuzufügen, und nahm daher an, dass es in VirtualHost funktioniert, war mir aber nicht ganz sicher. Grundsätzlich weiß ich sehr wenig über die Einrichtung von Webservern und muss als solche behandelt werden.
Ich entschuldige mich für falsche Tags und freue mich über die Zeit, die Sie zum Lesen des Beitrags benötigt haben, sowie über jede Hilfe, die Sie leisten können.
BEARBEITEN: Zur Verdeutlichung sind die Anwendungen bereits über https://www.mydomain.com:9090
usw. zugänglich . Ich möchte nur eine Möglichkeit verwenden https://www.mydomain.com/appName
, um zu derselben Position / Seite zu gelangen, die von diesen Anwendungen veröffentlicht wurde.
BEARBEITEN 2: Aus / etc / apache2 / sites-available / default
<VirtualHost *:80>
ServerAdmin webmaster@localhost
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 ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass /app1 https://localhost:9090/
ProxyPassReverse /app1 https://localhost:9090/
</VirtualHost>
quelle
<VirtualHost 10.0.0.1:80 > ServerName server.domain.com DocumentRoot /usr/local/apache/htdocs </VirtualHost>
Antworten:
Stellen Sie sicher, dass die folgenden Apache-Module installiert und geladen sind:
Sie können dies überprüfen, indem Sie den folgenden Befehl als root ausführen (vorausgesetzt, httpd befindet sich in Ihrem $ PATH).
httpd -t -D DUMP_MODULES
Versuchen Sie anschließend, Ihre Konfiguration wie folgt zu ändern:
Der Proxy sollte jetzt funktionieren, wenn Sie mydomain.com besuchen
http://localhost/app1
oderhttp://mydomain.com/app1
davon ausgehen, dass er auf localhost verweist.quelle
ProxyRequests Off <Proxy *> Order deny,allow Deny from all Allow from 127.0.0.1 </Proxy> SSLProxyEngine on ProxyPass /app1 https://localhost:9090 ProxyPassReverse /app1 https://localhost:9090
?ProxyPass /app1/ https://localhost:9090/
und dasselbe für ProxyPassReverse, falls verwendet. Und zweitens, fügen Sie die RewriteRule-Umleitung hinzu:RewriteRule ^/app1$ /app1/ [R]
as / app1 würde dann nicht weitergeleitet.