He estado buscando en Google y no he tenido mucho éxito en encontrar una respuesta. Estoy ejecutando un servidor en Ubuntu y tengo programas instalados que usan varios puertos no estándar. Cada uno usa un puerto diferente, en mi caso son 9090, 9091, 9092, 9093 y 9094. Configuré un servidor apache y tengo un nombre de dominio que ahora puede llegar a mi servidor en lugar de tener que escribir mi dirección IP. Lo que estoy buscando es una forma de crear directorios que puedan apuntar a los diferentes puertos que he enumerado. Quiero algo como:
https://www.mydomain.com/app1 https://www.mydomain.com/app2 http://www.mydomain.com/app3
Algunos de los puertos están sobre SSL, otros no, simplemente los puse en orden (9090-9094) para facilitar mi uso. Me gustaría que / app1 apunte al puerto SSL 9090, / app2 para que apunte al puerto SSL 9091 y / app3 para que apunte al puerto no SSL 9092. ¿Hay una manera simple de hacerlo? He intentado agregar ProxyPass y similares basados en otras publicaciones, pero nada ha funcionado. ¿Necesito agregar un nuevo sitio?
Además, si esto implica editar archivos, lo que espero que sea así, sería muy apreciado si pudieras enumerar la ubicación predeterminada del archivo y dónde agregar cosas. Seguí viendo publicaciones que decían agregar ProxyPass, por lo que asumí que entraba en VirtualHost, pero no estaba completamente seguro. Básicamente, sé muy poco sobre la configuración del servidor web y necesito que me traten como tal.
Pido disculpas por las etiquetas incorrectas y agradezco el tiempo que tomó para leer la publicación y cualquier ayuda que pueda proporcionar.
EDITAR: para aclarar, las aplicaciones ya están accesibles a través de https://www.mydomain.com:9090
, etc. Me gustaría una forma de usar https://www.mydomain.com/appName
para llegar a la misma ubicación / página publicada por esas aplicaciones.
EDITAR 2: desde / 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>
fuente
<VirtualHost 10.0.0.1:80 > ServerName server.domain.com DocumentRoot /usr/local/apache/htdocs </VirtualHost>
Respuestas:
Asegúrese de que los siguientes módulos de apache estén instalados y cargados:
Puede verificar ejecutando el siguiente comando como root (suponiendo que httpd esté en su $ PATH)
httpd -t -D DUMP_MODULES
Luego, intente cambiar su configuración a la siguiente:
El proxy ahora debería funcionar si visita
http://localhost/app1
ohttp://mydomain.com/app1
asume que mydomain.com apunta a localhost.fuente
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/
y lo mismo para ProxyPassReverse si se usa. Y en segundo lugar, agregue la redirección RewriteRule:RewriteRule ^/app1$ /app1/ [R]
como / app1 no se representaría en ese momento.