Cheap SharePoint -> Wordpress fail-over help request
keith
keith at scott-land.net
Tue Oct 11 13:24:27 UTC 2011
On 11/10/2011 10:50, Igor Sysoev wrote:
> On Tue, Oct 11, 2011 at 10:39:43AM +0100, keith wrote:
>> We have nginx setup as a reverse proxy and on one of the backend servers
>> we have a Sharepoint website that we want to failover to a Wordpress
>> website hosted on another server if there's a problem with Sharepoint
>> website. I've googled and red through books etc but can't we an example
>> for this. I think i need "try_files" and some type of error code
>> checking but havent been able to figure it out. Could someone advice ?
>> Below is the type of thing that I think I am after.
>>
>> Thanks for looking.
>> Keith
>>
>> upstream primaryserver { server 10.1.1.1:80; }
>> upstream secondaryserver { server 10.1.1.2:80; }
>>
>> server
>> {
>> listen 80;
>> server_name _;
>> server_name_in_redirect off;
>>
>> location /
>> {
>> try_files @sharepoint @wordpress;
>> }
>> location @sharepoint
>> {
>> proxy_pass http://primaryserver;
>> proxy_set_header Host $host;
>> proxy_connect_timeout 3;
>> proxy_next_upstream error timeout;
>> }
>>
>> location @wordpress
>> {
>> proxy_pass http://secondaryserver;
>> proxy_set_header Host $host;
>> proxy_connect_timeout 3;
>> proxy_next_upstream error timeout;
>> }
>>
>> }
> "try_files" tries files, but not proxied requests.
> There are two way to fallback to backup servers:
>
> 1)
> upstream sharepoint {
> server primaryserver;
> server secondaryserver backup;
> }
>
> server {
> location / {
> proxy_pass http://sharepoint;
> proxy_set_header Host $host;
> proxy_connect_timeout 3;
> }
> }
>
> 2)
> server {
> location / {
> proxy_pass http://primaryserver;
> proxy_set_header Host $host;
> proxy_connect_timeout 3;
> proxy_intercept_errors on;
> error_page 502 504 @wordpress;
> }
>
> location @wordpress {
> proxy_pass http://secondaryserver;
> proxy_set_header Host $host;
> proxy_connect_timeout 3;
> }
> }
>
>
Cheers Igor, Option 2 seems to be working for us !! So thanks for the
quick answers. I think we just need to setup the correct error codes now.
Below is the current configuration that seems to be working.
upstream primaryserver { server 10.0.0.xx:80; }
upstream secondaryserver { server 10.0.0.xx:80; }
server
{
listen 80;
server_name www.somewebsites.com;
server_name_in_redirect off;
location /
{
proxy_pass http://primaryserver;
proxy_set_header Host $host;
proxy_connect_timeout 3;
proxy_intercept_errors on;
error_page 400 403 502 504 @wordpress;
}
location @wordpress
{
proxy_pass http://secondaryserver;
proxy_set_header Host $host;
proxy_connect_timeout 3;
}
}
More information about the nginx
mailing list