Separation Of WebApp Service From Mailstore In ZCS8.5

Admin Article

Article Information

This article applies to the following ZCS versions.

ZCS 8.6 Article ZCS 8.6 ZCS 8.5 Article ZCS 8.5


Separation Of WebApp Service From Mailstore In ZCS 8.5+

The current Zimbra architecture combines the mailstore functionality with all the web functionality on the same server. Aim is to split the combined functionality so that mailstore server can be run independently from web that includes Zimbra Web Client, Zimbra Admin Client and Zimlets. This is how the proxy routes UI and SOAP/REST requests in a split environment. Zimbra-split-web-diagram000.png

There are several advantages with the split.

  • Some customers want to run their customized version of Zimbra Web Client and Zimbra Admin Client. Splitting the web apps from mailstore makes the UI customization process to be more “agile”, allowing the customers to roll out customized code without having to restart mailstore servers (zero down time).
  • Running webapps requires very few "front end" servers and thus need not touch all webapp or mailstore servers for each update.
  • All webapp servers will be completely decoupled from mailbox/Account unlike mailstore which has a affinity to the mailbox account, in other words any webapp server can serve any account request. So rolling out customized UI code doesn't need to shutdown all webapp servers at the same time.
  • The split works seamlessly with a cluster based set-up of new version of mailstore server with older versions of ZCS and also supports migrations.
  • Splitting the webapps from mailstore considerably decreases the load on mailstore servers which gives additional space to add more mailboxes and handle extra load on mailstore.

Zimbra-split-web-diagram001.png

Installation Process

Mail Store Server

During the Mailbox installation, we will select all the needed packages, including logger, snmp, store, spell, convertd, proxy and memcached.

Select the packages to install
	Install zimbra-ldap [Y] n
	Install zimbra-logger [Y] 
	Install zimbra-mta [Y] n
	Install zimbra-dnscache [N] 
	Install zimbra-snmp [Y] 
	Install zimbra-store [Y] 
	Install zimbra-apache [Y] 
	Install zimbra-spell [Y] 
	Install zimbra-convertd [Y] 
	Install zimbra-memcached [Y] 
	Install zimbra-proxy [Y] 
	Install zimbra-archiving [N]

Note: Remember that if you want to have the convertd working with the last High Fidelity Document Preview, you need to install libreoffice. LINK TO WIKI HIGH FIDELITY

To use the Mailbox server only as Mail Store Backend, we need to select in the Main Menu the option number 4 (zimbra-store):

   Main menu
   1) Common Configuration:                                                  
   2) zimbra-logger:                           Enabled                       
   3) zimbra-snmp:                             Enabled                       
   4) zimbra-store:                            Enabled                       
   5) zimbra-spell:                            Enabled                       
   6) zimbra-convertd:                         Enabled                       
   7) zimbra-proxy:                            Enabled                       
   8) Default Class of Service Configuration:                                
   9) Enable default backup schedule:          yes                           
   s) Save config to file                                                    
   x) Expand menu                                                            
   q) Quit                        
   Select, or 'r' for previous menu [r] 4

Once inside the Store Menu, we need to disable te option 24, the UI.

   Store configuration
   1) Status:                                  Enabled                       
   2) Create Admin User:                       yes                           
   3) Admin user to create:                    admin@zimbra.io               
   4) Admin Password                           set                           
   5) Anti-virus quarantine user:              virus-quarantine.cpggvaih@zimbra.io
   6) Enable automated spam training:          yes                           
   7) Spam training user:                      spam.lwjbfayhot@zimbra.io     
   8) Non-spam(Ham) training user:             ham.vwizoycy@zimbra.io        
   9) SMTP host:                               zimbramta01.zimbra.io         
  10) Web server HTTP port:                    8080                          
  11) Web server HTTPS port:                   8443                          
  12) Web server mode:                         https                         
  13) IMAP server port:                        7143                          
  14) IMAP server SSL port:                    7993                          
  15) POP server port:                         7110                          
  16) POP server SSL port:                     7995                          
  17) Use spell check server:                  yes                           
  18) Spell server URL:                        http://zimbrambox01.zimbra.io:7780/aspell.php
  19) Enable version update checks:            TRUE                          
  20) Enable version update notifications:     TRUE                          
  21) Version update notification email:       admin@zimbra.io               
  22) Version update source email:             admin@zimbra.io               
  23) Install mailstore (service webapp):      yes                           
  24) Install UI (zimbra,zimbraAdmin webapps): no                           
   Select, or 'r' for previous menu [r] 24

UI Server

In a different server, the one dedicated for the UI, we will select the next packages:

Select the packages to install
	Install zimbra-ldap [Y] n
	Install zimbra-logger [Y] n
	Install zimbra-mta [Y] n
	Install zimbra-dnscache [N] 
	Install zimbra-snmp [Y] 
	Install zimbra-store [Y] 
	Install zimbra-apache [Y] 
	Install zimbra-spell [Y] 
	Install zimbra-convertd [Y] n
	Install zimbra-memcached [Y] 
	Install zimbra-proxy [Y] 
	Install zimbra-archiving [N] 

In the Main Menu select the zimbra-store with the option number 4:

   Main menu
   1) Common Configuration:                                                  
   2) zimbra-logger:                           Enabled                       
   3) zimbra-snmp:                             Enabled                       
   4) zimbra-store:                            Enabled                       
   5) zimbra-spell:                            Enabled                       
   6) zimbra-convertd:                         Enabled                       
   7) zimbra-proxy:                            Enabled                       
   8) Default Class of Service Configuration:                                
   9) Enable default backup schedule:          yes                           
   s) Save config to file                                                    
   x) Expand menu                                                            
   q) Quit                        
   Select, or 'r' for previous menu [r] 4

And then click on the option 23 to disable the Mailstore Backend installation:

   Store configuration
   1) Status:                                  Enabled                       
   2) Create Admin User:                       yes                           
   3) Admin user to create:                    admin@zimbra.io               
   4) Admin Password                           set                           
   5) Anti-virus quarantine user:              virus-quarantine.cpggvaih@zimbra.io
   6) Enable automated spam training:          yes                           
   7) Spam training user:                      spam.lwjbfayhot@zimbra.io     
   8) Non-spam(Ham) training user:             ham.vwizoycy@zimbra.io        
   9) SMTP host:                               zimbramta01.zimbra.io         
  10) Web server HTTP port:                    8080                          
  11) Web server HTTPS port:                   8443                          
  12) Web server mode:                         https                         
  13) IMAP server port:                        7143                          
  14) IMAP server SSL port:                    7993                          
  15) POP server port:                         7110                          
  16) POP server SSL port:                     7995                          
  17) Use spell check server:                  yes                           
  18) Spell server URL:                        http://zimbrambox01.zimbra.io:7780/aspell.php
  19) Enable version update checks:            TRUE                          
  20) Enable version update notifications:     TRUE                          
  21) Version update notification email:       admin@zimbra.io               
  22) Version update source email:             admin@zimbra.io               
  23) Install mailstore (service webapp):      no                           
  24) Install UI (zimbra,zimbraAdmin webapps): yes   

Next steps are a little few configurations to have all the environment properly working.

The localconfig attribute zimbra_zmprov_default_soap_server should be set on the UI server to one of the mailstore servers (running the service webapp). zimbra@zimbraui01:~$ zmlocalconfig -e zimbra_zmprov_default_soap_server=zimbrambox01.zimbra.io

The UI server needs to know where the memcached is running. This is done by setting zimbraMemcachedClientServerList to the server where the memcached is running. zimbra@zimbraui01:~$ zmprov mcf zimbraMemcachedClientServerList "zimbrambox01.zimbra.io:11211"

We can check if we applied properly the command: zimbra@zimbraui01:~$ zmprov gcf zimbraMemcachedClientServerList zimbraMemcachedClientServerList:zimbrambox01.zimbra.io:11211

Administrator console is working, but only through the proxy using port 9071 (default value for zimbraAdminProxyPort) instead of 7071 (default value for zimbraAdminPort) after setting zimbraReverseProxyAdminEnabled to TRUE zimbra@zimbraui01:~$ zmprov ms `zmhostname` zimbraReverseProxyAdminEnabled TRUE

For service (SOAP/REST) to User Interface (JS/css/html) requests from mailstore server in split mode. Set zimbraWebClientURL on mailstore server to point to the Proxy. zimbra@zimbraui01:~$ zmprov mcf zimbraWebClientURL https://zimbaui01.zimbra.io

Need to have at least one mailstore server and one UI server for the proxy to be up and running and split setup to work. zmproxyctl restart is required after adding the new UI/mailstore servers to regenerate the correct proxy configurations. zimbra@zimbraui01:~$ zmproxyctl restart zimbra@zimbrambox01:~$ zmproxyctl restart

Testing the new environment

We will some tests to check the proper functionality of the Zimbra Collaboration Web Application Server Split.

  • If both servers are up and running, the user can access to the Web Client following the FQDN or IP of the Mailbox, or the FQDN or IP of the UI server.
  • When the UI server is off, can’t access to the regular Web Client, neither to the Admin Console, using the UI IP or hostname or using the Mailbox IP or hostname.
  • When the Mailbox backend is off, can load the login form for the Web Client, and also for the Admin Console (port 9071), after introduce the proper username/password a error appears.

Identified Support/Known Issues

Verified Against: Zimbra Collaboration Suite 8.6, 8.5 Date Created: 08/4/2014
Article ID: https://wiki.zimbra.com/index.php?title=Separation_Of_WebApp_Service_From_Mailstore_In_ZCS8.5 Date Modified: 2015-02-01



Try Zimbra

Try Zimbra Collaboration with a 60-day free trial.
Get it now »

Want to get involved?

You can contribute in the Community, Wiki, Code, or development of Zimlets.
Find out more. »

Looking for a Video?

Visit our YouTube channel to get the latest webinars, technology news, product overviews, and so much more.
Go to the YouTube channel »


Jump to: navigation, search