This is a step by step guide on how to install Office Web Apps 2013 multi servers farm (using windows NLB and http) and how to configure it with SharePoint 2013.
In my next post I will talk about how to configure Office Web Apps 2013 using NLB and https in multi servers deployment.
Important: this post is assuming that all office web apps servers will run the same role which is the typical case with most of the deployments, however incase you require to route requests to a specific office web server in the farm based on http headers consider using hardware load balancer with layer 7 routing.
Office Web Apps 2013 Architecture Overview
Office Web Apps 2013 deployment architecture has been changed when moving to SharePoint 2013 , where Office Web Apps are no longer a service applications to be federated with SharePoint Server. Instead office web apps 2013 are now decoupled from SharePoint to allow better extensibility , manageability , maintenance and upgrade.
Where in the new office Web Apps 2013 Architecture one single farm of Office web apps servers can serve different SharePoint farms, exchange servers , lync servers . Or even 3rd party applications.
General Guidelines and Recommended Practices before you start office web apps 2013 Installation
- To minimize the complexity of the deployment install all office web apps roles on each server instead of distributing the roles on servers.
- Office web Apps 2013 does not require SQL database.
- PowerShell is used to define Office Web Apps topology, by using New-OfficeWebAppsFarm command with the master server (the first server in the farm) and by using New-OfficeWebAppsMachine command to join more machines to the farm.
- Also PowerShell commands are used to connect the SharePoint farm to Office Web Apps farm.
- Incase of installing updates and patches , the Office Web Apps server should be disconnected from the Office Web Apps farm then joined again after finish the patching.
- SharePoint system account cant render office web apps (by design for security)
- NLB Tips
- Consider using NLB for high availability
- Make sure to enable NLB server affinity
Office Web Apps Step by Step Installation and Configuration
- Office web apps should be installed on a dedicated server (don’t install it on SharePoint servers, SQL Server , Domain Controller).
- The 64-bit edition of Windows Server 2008 R2 Service Pack 1 (SP1) Standard, Enterprise, or Datacenter or Windows 2012 Standard or Data Center.
- Update for Windows Server 2008 R2 KB2592525
- .Net framework 4.5 to be installed http://www.microsoft.com/en-us/download/details.aspx?id=30653
- Windows Management Framework 3.0 - Powershell http://www.microsoft.com/en-us/download/details.aspx?id=34595
Office Web Apps 2013 Installation Steps
Install IIS Role
Install Ink and Handwriting Services
On Office web apps servers (not SharePoint servers) , Run the Office Web Apps Setup
Prepare Office Web Apps 2013 for NLB
you need to create a host record for NLB and assign preserved IP
On DNS server , start menu -- administrative tools -- DNS - expand forward lookup zones
Right click you domain
Enter a name for you NLB Network name and any desired IP , note the NLB FQDN as we are going to use it later on
On each of the Office web Apps servers , start configuring the NLB by adding NLB from features:
As you can see the first office web App node name is OfficeWebApp01, enter the name then press connect
If you have more than one network card , select the one you wish to participate in the NLB , in my case there is only one
Note: as you can see the private IP of the current network interface in 192.168.1.22 , another IP will be added which is the NLB IP after completing the NLB configuration
Define the priority of this NLB Node and the dedicated IP address to participate then click next. ( I left the default in my case)
We need here to specify the NLB Cluster IP which should be in our case (192.168.1.25), press add
Click Ok , then Next
In this screen we will use the FQDN we created at the DNS in the first steps
You can specify many rule for restriction purposes , in my case I accepted the default which allow all ports communication with the NLB.
You can add as many nodes as you wish to the cluster in the same way by "add Host to Cluster"
To verify the NLB setup , ping the NLB name
Configure Office Web Apps Multi servers Farm
Now on Office Web Server (officeWebApp01) open windows PowerShell
Run the following command to add the first server node to the Office Web App Farm
New-OfficeWebAppsFarm –InternalUrl “http://OfficeApps” –AllowHttp –EditingEnabled
-InternalURL: the NLBName for the Office web Apps farm or it can be a single server name incase this is a single server installation.
–EditingEnabled (Optional) : used to allow SharePoint documents to be edited in browser (not needed in Lync or exchange cases)
-AllowHttp: incase to force http communication this parameter must be passed, since Office Web App uses https as default communication, so make sure to pass this parameter if you wish to use http not https.
After executing the command , you will get the configuration info as the following:
Now open IIS and notice the creation of the new web application
To make sure you installation is correct browse to the following URL:
You will get a the following response:
Configure SharePoint 2013 to bind with Office Web Apps Farm
Configure SharePoint 2013 to have the WOPI binding with Office Web Apps Farm, in order to perform this all what you need to do is to run a couple of simple SharePoint Powershell commands on one of the SharePoint servers (not office web app servers):
New-SPWOPIBinding –ServerName “OfficeApps” -AllowHTTP
Where OfficeApps is the NLBName for office Web App servers farm, you can place a single server name incase you are not using NLB/Multi Server Deployment.
Note: the following ports should be open between SharePoint and Office Web Apps Servers 80, 443, or 809
Configure SharePoint to use http
After running the above command , let us check the binding and zone, By default SharePoint is using https , to identify which binding is used http or https run the following command in the PowerShell screen
In order to change it to http , run the following command:
Set-SPWOPIZone –zone “internal-http”
Allow Oauth for http
One last thing using http requires to change the AllowOAuthOverHttp to True , to do so run the following PowerShell commands on one of the SharePoint servers
$config = (Get-SPSecurityTokenServiceConfig)
$config.AllowOAuthOverHttp = $true
Congratulation we are done !!
upload a word document or PowerPoint and try to open it in browser (be carful !! don’t use system account to browse office web apps documents ,this would generate an error)
Click on the document to open it in browser, note at button how request is opened by the Office Web App servers farm.
Add more Office Web Apps servers to the farm
All what you have to do now for any additional office web server is to:
- Install Office Web Apps pre requisites
- Install office web apps
- Join the new server to the NLB Cluster (as described above)
- Run the following windows power shell command from a machine that is already part of the farm
- Firewall: If the machine joining the WAC farm cannot access the HTTP 809 channel the New-OfficeWebAppsMachine will throw a “The destination is unreachable error”.
New-OfficeWebAppsMachine –MachineToJoin ServerName
ServerName: is the name of the master machine (the first machine you added to the farm)
use the below command to make sure the new server is added to the farm
Remove Office Web Machine Server
On the server you want to remove run the below command:
Tip: If, for any reason, you want to disconnect SharePoint 2013 from Office Web Apps Server, use the following command example:
Plan Office Web Apps: http://technet.microsoft.com/en-us/library/jj219435.aspx#certificate
Deploy Office Web Apps : http://technet.microsoft.com/en-us/library/jj219455.aspx
Configure SharePoint 2013 to use Office Web Apps: http://technet.microsoft.com/en-us/library/ff431687.aspx#tshoot
Troubleshoot office web apps : http://technet.microsoft.com/en-us/library/ff431687.aspx#tshoot