Configurazione Apache WebServer (in modalità HTTP)
Per pubblicare il servizio iShareDoc su Apache WebServer è necessario utilizzare il modulo mod_proxy e pubblicare i contesti /isharedoc e /isdstreaming. In configurazioni in cui è previsto l’utilizzo del modulo JOSSO SSO è necessario pubblicare anche il contesto /josso.
File /etc/httpd/vhosts.d/vhosts.conf
# ProxyRequests Off ProxyPreserveHost On <Proxy *> Order deny,allow Allow from all </Proxy> #COREPA <VirtualHost *:80> ServerName democorepa.grupposistematica.it ProxyPass /isharedoc/ http://192.168.2.183:5080/isharedoc/ ProxyPassReverse /isharedoc/ http://192.183.2.183:5080/isharedoc/ ProxyPass /isdstreaming/ http://192.168.2.183:5999/isdstreaming/ ProxyPassReverse /isdstreaming/ http://192.168.2.183:5999/isdstreaming/ # Se si utilizza JOSSO SSO ProxyPass /josso/ http://192.168.2.183:2080/josso/ ProxyPassReverse /josso/ http://192.168.2.183:2080/josso/ </VirtualHost>
Configurazione Apache Tomcat
Nei casi in cui il servizio viene pubblicato tramite un reverse proxy Apache, tutte le richieste risulteranno provenienti dall’iIP del reverse proxy e quindi l’applicazione non sarà in grado di determinare l’IP del client da cui provengono le richieste. Come soluzione è possibile istruire Tomcat per utilizzare l’indirizzo indicato nell’header x-forwarded-for.
File $CATALINA_HOME/conf/server.xml
<Service name="Catalina"> ... <Engine name="Catalina" defaultHost="localhost"> ... <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> ... <Valve className="org.apache.catalina.valves.RemoteIpValve" internalProxies="172\.18\.111\.52, 172\.18\.111\.53" remoteIpHeader="x-forwarded-for" proxiesHeader="x-forwarded-by" protocolHeader="x-forwarded-proto" /> ... </Host> ... </Engine> </Service>
nella proprietà internalProxies và indicato l’elenco degli IP dei proxy.
Debug Tomcat7 Valve RemoteIpValue
Modificare il file $CATALINA_HOME/conf/web.xml
<filter> <filter-name>requestdumper</filter-name> <filter-class> org.apache.catalina.filters.RequestDumperFilter </filter-class> </filter> <filter-mapping> <filter-name>requestdumper</filter-name> <url-pattern>*</url-pattern> </filter-mapping>