En general muchas de las herramientas web que se suelen utilizar, para acceder a ellas hay que hacerlo mediante una IP y un puerto. Esto a veces es un poco tedioso porque hay que acordarse que puerto corresponde a que servicio. Para solucionar esto, se puede hacer un Proxy reversible con apache que esto es; indicándole una porque url se va a acceder al servicio, apache te redirija al puerto de este. Es decir, si tenemos un odoo que está escuchando en 0.0.0.0:8069, hacemos que todo lo que venga a odoo.ichasco.com se redirija internamente a 127.0.0.1:8069.
Hacer eso, es muy sencillo lo único que hay que hacer es, crear un site para el servicio que queramos redirigir. En este caso para mas seguridad, se va a forzar que todas las peticiones se redirijan al puerto 443.
vim /etc/apache2/sites-available/<servicio>.conf
<VirtualHost *:80> ServerName <servicio>.ichasco.com RewriteEngine on RewriteCond %{HTTPS} !^on$ [NC] RewriteRule . https://%{HTTP_HOST}%{REQUEST_URI} [L] ErrorLog /var/log/apache2/<servicio>_error.log CustomLog /var/log/apache2/<servicio>_access.log combined env=!client-ip-request </VirtualHost> <VirtualHost *:443> ServerName <servicio>.ichasco.com SSLEngine on SSLCertificateFile </path/certificado> SSLCertificateKeyFile </path/key> SSLCertificateChainFile </path/chain> SSLProxyEngine on RequestHeader set "X-Forwarded-Proto" "https" SetEnv proxy-nokeepalive 1 ProxyPass / http://127.0.0.1:<puerto en el que escucha>/ ProxyPassReverse / http://127.0.0.1:<puerto en el que escucha>/ ProxyErrorOverride off ErrorLog /var/log/apache2/<servicio>-ssl_error.log CustomLog /var/log/apache2/<servicio>-ssl_access.log combined env=!client-ip-request </VirtualHost>
Luego hay que habilitar los modulos necesarios
a2enmod proxy
a2enmod headers
a2enmod rewrite
a2enmod ssl
a2enmod proxy_html
a2enmod proxy_http
Habilitar el site
a2ensite <servicio>.conf
Y reiniciar apache
service apache2 restart
Y ahora para acceder a un servicio que antes se accedía por ejemplo ip:puerto, valdría con https://servicio.ichasco.com