J'ai effectué des recherches sur Google et je n'ai pas réussi à trouver une réponse. J'exécute un serveur sur Ubuntu et j'ai installé des programmes qui utilisent divers ports non standard. Chacun utilise un port différent, dans mon cas ce sont 9090, 9091, 9092, 9093 et 9094. J'ai configuré un serveur apache et j'ai un nom de domaine qui peut maintenant atteindre mon serveur au lieu d'avoir à taper mon adresse IP. Ce que je recherche, c'est un moyen de créer des répertoires qui peuvent pointer vers les différents ports que j'ai répertoriés. Je veux quelque chose comme:
https://www.mydomain.com/app1 https://www.mydomain.com/app2 http://www.mydomain.com/app3
Certains ports sont sur SSL, d'autres non, je les mets juste en ordre (9090-9094) pour une facilité d'utilisation de ma part. J'aimerais que / app1 pointe vers le port SSL 9090, / app2 pour pointer vers le port SSL 9091 et / app3 pour pointer vers le port non SSL 9092. Existe-t-il un moyen simple de le faire? J'ai essayé d'ajouter ProxyPass et similaires sur la base d'autres publications, mais rien n'a fonctionné. Dois-je ajouter un nouveau site?
De plus, si cela implique la modification de fichiers, ce qui, je l'espère, serait grandement apprécié si vous pouviez indiquer l'emplacement par défaut du fichier et où ajouter des éléments. J'ai continué à voir des messages disant d'ajouter ProxyPass, alors j'ai simplement supposé que cela allait à l'intérieur de VirtualHost, mais je n'étais pas entièrement sûr. Fondamentalement, je connais très peu la configuration du serveur Web et je dois être traité comme tel.
Je m'excuse pour toute balise incorrecte et j'apprécie le temps que vous avez pris pour lire le message et toute l'aide que vous pouvez fournir.
EDIT: Pour plus de précision, les applications sont déjà accessibles via https://www.mydomain.com:9090
, etc. Je voudrais juste un moyen d'utiliser https://www.mydomain.com/appName
pour arriver au même emplacement / page publié par ces applications.
EDIT 2: à partir de / 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>
la source
<VirtualHost 10.0.0.1:80 > ServerName server.domain.com DocumentRoot /usr/local/apache/htdocs </VirtualHost>
Réponses:
Assurez-vous que les modules Apache suivants sont installés et chargés:
Vous pouvez vérifier en exécutant la commande suivante en tant que root (en supposant que httpd est dans votre $ PATH)
httpd -t -D DUMP_MODULES
Ensuite, essayez de changer votre configuration comme suit:
Le proxy devrait maintenant fonctionner si vous visitez
http://localhost/app1
ou enhttp://mydomain.com/app1
supposant que mydomain.com pointe vers localhost.la source
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/
et la même chose pour ProxyPassReverse si utilisé. Et deuxièmement, ajoutez la redirection RewriteRule:RewriteRule ^/app1$ /app1/ [R]
car / app1 ne serait pas alors mandaté.