시나리오는 다음과 같습니다. 서로 백업하는 두 개의 앱 서버 앞에 nginx 역방향 프록시 서버가 있습니다. 처음에는 nginx가 모든 사용자 요청을 첫 번째 앱 서버로 전달하고, 첫 번째 앱 서버가 다운된 경우 , nginx가 그 시점부터 두 번째 앱 서버가 다운될 때까지 모든 사용자 요청을 두 번째 앱 서버로 전달하고 nginx는 모든 사용자 요청을 첫 번째 앱 서버로 전달하기 위해 다시 되돌려야 합니다. 물론 두 앱 서버가 모두 다운되면 nginx는 오류를 반환합니다.
업스트림 로드 밸런싱 및 Proxy_next_upstream 설정과 같은 설정을 살펴봤지만 실제로 여기서 원하는 것은 아닌 것 같습니다. 내 시나리오에 맞게 nginx를 구성하는 방법을 아시나요? 감사해요.
답변1
upstream
이를 달성하려면 nginx 구성을 사용하고 싶을 것입니다 .
upstream mybackend {
# first app server
server 192.168.0.1;
# second app server
server 192.168.0.2 backup;
}
server {
...
location / {
proxy_pass http://mybackend;
}
}
여기서 핵심은 기본 노드(즉, 태그가 지정되지 않은 노드 )를 사용할 수 없는 backup
경우에만 해당 노드를 활용하도록 nginx에 지시하는 매개변수 입니다.backup
가득한여기 문서.
답변2
좀 더 검색한 끝에 OpenResty를 사용하기로 결정했습니다(https://openresty.org/) 내 요구 사항, 특히 LuaUpstreamNginxModulehttps://github.com/openresty/lua-upstream-nginx-module일부 사용자 정의 Lua 스크립트를 사용하면 내 시나리오에 완벽하게 작동하는 것 같습니다.