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
