我有两个版本的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时间的所有请求。
非常感谢任何帮助或建议更好的解决方法。