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 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
Install IIS Role
Install Ink and Handwriting Services
On Office web apps servers (not SharePoint servers) , Run the Office Web Apps Setup
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
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:
http://NLBServerName/hosting/discovery/ which is in our case: http://officeApps/hosting/discovery
You will get a the following response:
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
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”
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.
All what you have to do now for any additional office web server is to:
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
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
Great writing skills ! wonderfull
Thanks Gokan , glad you liked it :)
Wonderful stuff, keep them coming.. love real world scenarios...
Can an Office Web Apps 2013 application pool be geographically dispersed or must they remain on the same site/subnet?
well Office Web Apps servers should be all in the same Domain , and in the same OU , and must reside all in the same data center , and should not be disributed geograhpically
for more info see topology planning below:
Thank you for this great post.
One question regarding this setup in HTTPS:
What kind of certificates do we need? (one by server + one for the cluster name...?)
Thanks for this article, Issa. This is really helpful.
May I ask if you will be posting the article for HTTPS soon? I just want to see if each cert must be deployed to all servers or only to the NLB (for SSL offloading).
I am having an issue that maybe you can help with. I have several farms and have no issues getting this to work on a single server farm. The issue is on my multi-server SP farms (2 different farms) that use TMG as a reverse proxy. No matter what I have tried I can not get it to work. I have tried both HTTP and HTTPS with a certificate. No luck on this configuration. What I see in the logs is "Could not contact WOPI Endpoint. Error Details- 'FileNotFound URL-http.....
Any thoughts on this.
Thanks in advance.
hi Check ,
I suspect that its a connectivity problem between the sharePoint farm and the office web apps farm , check two things :
- you can reach the office web apps from inside sharepoint servers by opening the IE and placing the URL http://OfficeWebAppServerName/hosting/discovery/
- open the IIS on the office web App Server and make sure that office web app virtual directories are created there and the URL http://OfficeWebAppServerName/hosting/discovery/ is reached from inside the server
hi Kago & Djef
I will try to post the https soon :)
When creating a farm - 2 nodes and you created farm with PS command:
New-OfficeWebAppsFarm –InternalUrl “http://OfficeApps.contoso.com” –AllowHttp –EditingEnabled
On the second node would i run PS command 1) of 2) ?
1) New-OfficeWebAppsMachine –MachineToJoin officeappserver1.contoso.com <-- on server 1 name ?
2) New-OfficeWebAppsMachine –MachineToJoin officeapps.contoso.com <-- on nlb name ?
to add more servers to officeWebApps farms
use: "New-OfficeWebAppsMachine –MachineToJoin ServerName"
there is a section in the post describing this point
If you have configured the OWA server to be HTTP when installing. What are the steps to change to work over https?
Nice post Issa. I followed the post and managed to setup a two server OfficeApps Farm. Everything works fine when both are up. But after I shutdown the master server in the farm I get page cannot be displayed. Did I miss anything ?