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>
