Difference between revisions of "Template:ApacheOXConf"

 
(58 intermediate revisions by 7 users not shown)
Line 1: Line 1:
Configure the ''mod_proxy_ajp'' module by creating a new Apache configuration file.
+
Configure the ''mod_proxy_{{#if:{{{connector|}}}|{{{connector}}}|ajp}}'' module by creating a new Apache configuration file.
 +
 +
$ vim {{#if:{{{connectorConf|}}}|{{{connectorConf}}}|{{{ajpconf}}}}}
  
  $ vim {{{ajpconf}}}
+
  {{#if:{{{release}}}|{{#ifeq:{{{release|}}}|6.22|
 +
<Location /webservices>
 +
    # Please note that the servlet path to the soap API has changed:
 +
    # restrict access to the soap provisioning API
 +
    Order Deny,Allow
 +
    Deny from all
 +
    Allow from 127.0.0.1
 +
    # you might add more ip addresses / networks here
 +
    # Allow from 192.168 10 172.16
 +
</Location>
 +
# the old path is kept for compatibility reasons|}}|}}
 +
<Location /servlet/axis2/services>
 +
    # restrict access to the soap provisioning API
 +
    Order Deny,Allow
 +
    Deny from all
 +
    Allow from 127.0.0.1
 +
    # you might add more ip addresses / networks here
 +
    # Allow from 192.168 10 172.16
 +
</Location>
 
   
 
   
 
  {{{loadmodule}}}
 
  {{{loadmodule}}}
 
   
 
   
  <Proxy *>
+
  <IfModule mod_proxy_{{#if:{{{connector|}}}|{{{connector}}}|ajp}}.c>
Order deny,allow
+
    ProxyRequests Off
allow from all
+
    {{#ifeq: {{{connector}}} | http | {{Template:ApacheAppSuiteConf/httpProxyPreserveHost}} | }}
</Proxy>
+
    <Proxy balancer://oxcluster>
+
        Order deny,allow
ProxyPass /axis2 ajp://127.0.0.1:8009/axis2 smax=0 ttl=60 retry=5
+
        Allow from all
ProxyPass /ajax ajp://127.0.0.1:8009/ajax smax=0 ttl=60 retry=5
+
        # multiple server setups need to have the hostname inserted instead localhost
ProxyPass /servlet ajp://127.0.0.1:8009/servlet smax=0 ttl=60 retry=5
+
        BalancerMember {{#if:{{{connector|}}}|{{{connector}}}|ajp}}://localhost:8009 timeout=100 smax=0 ttl=60 retry=60 loadfactor=50 route=OX1
ProxyPass /infostore ajp://127.0.0.1:8009/infostore smax=0 ttl=60 retry=5
+
        # Enable and maybe add additional hosts running OX here
 +
        # BalancerMember {{#if:{{{connector|}}}|{{{connector}}}|ajp}}://oxhost2:8009 timeout=100  smax=0 ttl=60 retry=60 loadfactor=50 route=OX2
 +
      ProxySet stickysession=JSESSIONID|jsessionid scolonpathdelim=On
 +
      {{#ifeq: {{{connector}}} | http |
 +
      SetEnv proxy-initial-not-pooled
 +
      SetEnv proxy-sendchunked
 +
      | }}
 +
    </Proxy>
 +
    {{#ifeq: {{{connector}}} | http | {{Template:ApacheAppSuiteConf/easHttpProxy|syncProxyName={{{easProxyName}}}}} | }}
 +
    # OX frontend
 +
    <Proxy /ajax>
 +
        ProxyPass balancer://oxcluster/ajax
 +
    </Proxy>
 +
    <Proxy /servlet>
 +
        ProxyPass balancer://oxcluster/servlet
 +
    </Proxy>
 +
    <Proxy /infostore>
 +
        ProxyPass balancer://oxcluster/infostore
 +
    </Proxy>
 +
    <Proxy /publications>
 +
        ProxyPass balancer://oxcluster/publications
 +
    </Proxy>
 +
    # USM
 +
    <Proxy /usm-json>
 +
        ProxyPass balancer://oxcluster/usm-json
 +
    </Proxy>
 +
    # SOAP
 +
    <Proxy /webservices>
 +
        ProxyPass balancer://oxcluster/webservices
 +
  </Proxy>
 +
  {{#ifeq: {{{connector}}} | http |
 +
    <Proxy /realtime>
 +
        ProxyPass balancer://oxcluster/realtime
 +
  </Proxy>
 +
  | }}
 +
    # OXtender{{#ifeq: {{{connector}}} | http | /EAS specific proxy container with higher timeout | }}
 +
    <Proxy /Microsoft-Server-ActiveSync>
 +
        ProxyPass balancer://{{#if:{{{easProxyName|}}}|{{{easProxyName}}}|oxcluster}}/Microsoft-Server-ActiveSync
 +
    </Proxy>
 +
</IfModule>
  
 
Modify the default website settings to display the Open-Xchange GUI
 
Modify the default website settings to display the Open-Xchange GUI
  
 
  $ vim {{{apacheconf}}}
 
  $ vim {{{apacheconf}}}
+
 
NameVirtualHost *
+
  <VirtualHost *:80>
  <VirtualHost *>
 
 
  ServerAdmin webmaster@localhost
 
  ServerAdmin webmaster@localhost
 
   
 
   
Line 30: Line 88:
 
  allow from all
 
  allow from all
 
  RedirectMatch ^/$ /ox6/
 
  RedirectMatch ^/$ /ox6/
 +
                Options +FollowSymLinks +SymLinksIfOwnerMatch
 
  </Directory>
 
  </Directory>
 +
        # deflate
 +
      AddOutputFilterByType DEFLATE text/html text/plain text/javascript application/javascript text/css text/xml application/xml text/x-js application/x-javascript
 
   
 
   
 +
# pre-compressed files
 +
AddType text/javascript .jsz
 +
AddType text/css .cssz
 +
AddType text/xml .xmlz
 +
        AddType text/plain .po
 +
 +
AddEncoding gzip .jsz .cssz .xmlz
 +
SetEnvIf Request_URI "\.(jsz|cssz|xmlz)$" no-gzip
 +
 
  ExpiresActive On
 
  ExpiresActive On
  ExpiresByType image/gif "access plus 23 hours"
+
 
ExpiresByType image/png "access plus 23 hours"
+
<Location /ox6>
ExpiresByType image/jpg "access plus 23 hours"
+
        # Expires (via ExpiresByType to override global settings)
ExpiresByType image/jpeg "access plus 23 hours"
+
        ExpiresByType image/gif "access plus 6 months"
ExpiresByType text/javascript "access plus 23 hours"
+
        ExpiresByType image/png "access plus 6 months"
ExpiresByType text/css "access plus 23 hours"
+
        ExpiresByType image/jpg "access plus 6 months"
ExpiresByType text/html "access plus 23 hours"
+
        ExpiresByType image/jpeg "access plus 6 months"
ExpiresByType application/x-javascript "access plus 23 hours"
+
        ExpiresByType text/css "access plus 6 months"
<Files ~ "\.(js|css|gif|jpe?g|png)$">
+
        ExpiresByType text/html "access plus 6 months"
Header append Cache-Control "public"
+
        ExpiresByType text/xml "access plus 6 months"
  </Files>
+
        ExpiresByType text/javascript "access plus 6 months"
+
        ExpiresByType text/x-js "access plus 6 months"
  DeflateFilterNote ratio
+
        ExpiresByType application/x-javascript "access plus 6 months"
  AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/x-javascript application/javascript
+
        ExpiresDefault "access plus 6 months"
  BrowserMatch ^Mozilla/4 gzip-only-text/html
+
        Header append Cache-Control "private"
BrowserMatch ^Mozilla/4\.0[678] no-gzip
+
        Header unset Last-Modified
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
+
        Header unset Vary
Header append Vary User-Agent env=!dont-vary
+
        # Strip version
 +
        RewriteEngine On
 +
        RewriteRule v=\w+/(.+) $1 [L]
 +
        # Turn off ETag
 +
        Header unset ETag
 +
        FileETag None
 +
  </Location>
 +
 
 +
  <Location /ox6/ox.html>
 +
        ExpiresByType text/html "now"
 +
        ExpiresDefault "now"
 +
        Header unset Last-Modified
 +
        Header set Cache-Control "no-store, no-cache, must-revalidate, post-check=0, pre-check=0"
 +
        # Turn off ETag
 +
        Header unset ETag
 +
        FileETag None
 +
</Location>
 +
 +
  <Location /ox6/index.html>
 +
        ExpiresByType text/html "now"
 +
        ExpiresDefault "now"
 +
        Header unset Last-Modified
 +
        Header set Cache-Control "no-store, no-cache, must-revalidate, post-check=0, pre-check=0"
 +
        # Turn off ETag
 +
        Header unset ETag
 +
        FileETag None
 +
</Location>
 
  </VirtualHost>
 
  </VirtualHost>

Latest revision as of 18:53, 15 May 2015

Configure the mod_proxy_ajp module by creating a new Apache configuration file.

$ vim {{{ajpconf}}}


<Location /servlet/axis2/services>
    # restrict access to the soap provisioning API
    Order Deny,Allow
    Deny from all
    Allow from 127.0.0.1
    # you might add more ip addresses / networks here
    # Allow from 192.168 10 172.16
</Location>

{{{loadmodule}}}

<IfModule mod_proxy_ajp.c>
   ProxyRequests Off
   
   <Proxy balancer://oxcluster>
       Order deny,allow
       Allow from all
       # multiple server setups need to have the hostname inserted instead localhost
       BalancerMember ajp://localhost:8009 timeout=100 smax=0 ttl=60 retry=60 loadfactor=50 route=OX1
       # Enable and maybe add additional hosts running OX here
       # BalancerMember ajp://oxhost2:8009 timeout=100  smax=0 ttl=60 retry=60 loadfactor=50 route=OX2
      ProxySet stickysession=JSESSIONID|jsessionid scolonpathdelim=On
      
   </Proxy>
   
   # OX frontend
   <Proxy /ajax>
       ProxyPass balancer://oxcluster/ajax
   </Proxy>
   <Proxy /servlet>
       ProxyPass balancer://oxcluster/servlet
   </Proxy>
   <Proxy /infostore>
       ProxyPass balancer://oxcluster/infostore
   </Proxy>
   <Proxy /publications>
       ProxyPass balancer://oxcluster/publications
   </Proxy>
   # USM
   <Proxy /usm-json>
       ProxyPass balancer://oxcluster/usm-json
   </Proxy>
   # SOAP
   <Proxy /webservices>
       ProxyPass balancer://oxcluster/webservices
  </Proxy>
  
   # OXtender
   <Proxy /Microsoft-Server-ActiveSync>
       ProxyPass balancer://oxcluster/Microsoft-Server-ActiveSync
   </Proxy>
</IfModule>

Modify the default website settings to display the Open-Xchange GUI

$ vim {{{apacheconf}}}
<VirtualHost *:80>
	ServerAdmin webmaster@localhost

	DocumentRoot {{{docroot}}}

	<Directory {{{docroot}}}>
		AllowOverride None
		Order allow,deny
		allow from all
		RedirectMatch ^/$ /ox6/
               Options +FollowSymLinks +SymLinksIfOwnerMatch
	</Directory>
       # deflate
      AddOutputFilterByType DEFLATE text/html text/plain text/javascript application/javascript text/css text/xml application/xml text/x-js application/x-javascript

	# pre-compressed files
	AddType text/javascript .jsz
	AddType text/css .cssz
	AddType text/xml .xmlz
        AddType text/plain .po
	
	AddEncoding gzip .jsz .cssz .xmlz
	SetEnvIf Request_URI "\.(jsz|cssz|xmlz)$" no-gzip
	
	ExpiresActive On
	
	<Location /ox6>
	        # Expires (via ExpiresByType to override global settings)
	        ExpiresByType image/gif "access plus 6 months"
	        ExpiresByType image/png "access plus 6 months"
	        ExpiresByType image/jpg "access plus 6 months"
	        ExpiresByType image/jpeg "access plus 6 months"
	        ExpiresByType text/css "access plus 6 months"
	        ExpiresByType text/html "access plus 6 months"
	        ExpiresByType text/xml "access plus 6 months"
	        ExpiresByType text/javascript "access plus 6 months"
	        ExpiresByType text/x-js "access plus 6 months"
	        ExpiresByType application/x-javascript "access plus 6 months"
	        ExpiresDefault "access plus 6 months"
	        Header append Cache-Control "private"
	        Header unset Last-Modified
	        Header unset Vary
	        # Strip version
	        RewriteEngine On
	        RewriteRule v=\w+/(.+) $1 [L]
	        # Turn off ETag
	        Header unset ETag
	        FileETag None
	</Location>
	
	<Location /ox6/ox.html>
	        ExpiresByType text/html "now"
	        ExpiresDefault "now"
	        Header unset Last-Modified
	        Header set Cache-Control "no-store, no-cache, must-revalidate, post-check=0, pre-check=0"
	        # Turn off ETag
	        Header unset ETag
	        FileETag None
	</Location>
	
	<Location /ox6/index.html>
	        ExpiresByType text/html "now"
	        ExpiresDefault "now"
	        Header unset Last-Modified
	        Header set Cache-Control "no-store, no-cache, must-revalidate, post-check=0, pre-check=0"
	        # Turn off ETag
	        Header unset ETag
	        FileETag None
	</Location>
</VirtualHost>