An InAcademia node provides various services which internally live on different ports.
For a production node, we do not want to have external services connect to 'weird' ports. Therefor we want all traffic to terminate at a regular https port. To reach the internal applications, we redirect subdirectories to specific ports on the localhost web server. In additions, internal interfaces do not support https, whereas we only use https externally.
We use POUND to handle SSL termination, and use a webserver (currently Apache with mod_proxy) to redirect specific URLs to ports on the internal (localhost server)
Source: HTTP(s) flows
An example for the URL is: https://t01.t.inacademia.org/svs
ListenHTTPS Address 0.0.0.0 Port 443 AddHeader "X-Forwarded-Proto: https" HeadRemove "X-Forwarded-Proto" HeadRemove "X-Forwarded-For" Cert "/etc/ssl/localcerts/pound.pem" Service BackEnd Address 127.0.0.1 Port 80 Priority 1 End End End
Apache need mod_proxy and mod_proxy_http installed
ProxyRequests Off <Proxy *> Order deny,allow Deny from all Allow from 127.0.0.1 </Proxy> #SSLProxyEngine on # SvS core application ProxyPass /svs http://localhost:8087 ProxyPassReverse /svs http://localhost:8087 # MDX - Metadata handling ProxyPass /mdx http://localhost:8088 ProxyPassReverse /mdx http://localhost:8088 # DS - Discovery Service ProxyPass /ds http://localhost:8100 ProxyPassReverse /ds http://localhost:8100