将NGINX设置为故障转移Web服务器

时间:2016-11-10 00:53:16

标签: php caching nginx

我有两个版本的Web应用程序,我想从中提供服务器内容。我想设置nginx尝试第一个,如果它得到404然后尝试第二个。 (我主要有这个部分工作。)但我也希望nginx能够记住在一段时间内没有找到web应用1的请求URI并首先尝试使用web app 2.

我们正在创建一个新版本的应用程序,它具有全新的代码库。我们希望网络服务器首先尝试那个,如果传递的路由尚未实现则设置为404快速,因此我需要网络服务器返回旧版本。如果真的是404,该服务器也将处理错误页面。

这是我到目前为止所拥有的:

server {
    listen 80;
    server_name domain.com

    location @webapp {
        include proxy.conf;
        proxy_intercept_errors off;
        proxy_pass http://webapp;
        error_page 403 404 = @webapp2;
    }

    location @webapp2 {
        include proxy.conf;
        proxy_intercept_errors off;
        proxy_pass http://webapp2;
        error_page 403 404 = @error;
    }

    location / {
        proxy_pass http://webapp;
        include proxy.conf;
        error_page 403 404 = @webapp2;
    }

然后我基本上为每个网络应用程序提供了一个文件:

upstream webapp {
    server 127.0.0.1:81;
}

server {
    listen 81;
    server_name domain.com;
    root /var/www/domain.com;

    location / {
        try_files $uri /index.php$is_args$args;
    }

    ...
}

另一个使用端口82,这非常适合故障转移。但我无法记住,网络应用2提供了一个URI,并直接用于下一个X时间的所有请求。

非常感谢任何帮助或建议更好的解决方法。

0 个答案:

没有答案