NGINXを初めて使用し、サーバーを移行しています。新しいサーバーですべてを完了していないので、そのリソースまたはパスが存在しない場合を除いて、新しいサーバーと一致させたいと思います。もしそうなら、私はそれを古いサーバーに送りたいです。それを行う方法はありますか?
私はproxy_next_upstream
を使ったハックでこれを行いました
アップストリームを定義し、重みを制御してほとんどのリクエストをnew_serverに転送します。proxy_next_upstream
は失敗したリクエストを次のサーバー(old_server)に転送しようとします。
upstream backend {
server new_server weight=10000;
server old_server weight=1;
}
server {
location / {
proxy_pass http://backend;
proxy_next_upstream error timeout http_404 http_500 http_502 http_503 http_504 non_idempotent;
}
}
===========
ソリューションII
server {
location / {
proxy_pass http://new_server;
error_page 404 500 502 503 504 = @fallback;
}
location @fallback {
proxy_pass http://old_server;
}
}