server1.com/service1
모든 시스템 요청을 리디렉션할 수 있는지 묻고 있습니다 server2.com/service1
.
이것이 내 상황입니다. 내 메인 서버에 웹 애플리케이션이 있습니다(mainserver.com), 그러면 3개의 서버와 일련의 휴식 서비스가 있습니다. 예를 들면 다음과 같습니다.
mainserver.com -> web application
serviceserver1.com/createUser
serviceserver2.com/createUser
serviceserver3.com/createUser
서비스 서버가 다운되는 경우가 매우 흔하며 서비스 URL을 다른 서버로 변경하고 애플리케이션을 다시 시작해야 합니다(애플리케이션의 동작을 변경할 수는 없습니다).
글쎄, 나는 호스트 리디렉션 같은 것을 생각하고 있지만 호스트 수준이 아닌 URL 수준에서만 가능합니다.
답변1
Nginx를 사용하여 이 작업을 수행할 수 있습니다. 먼저 다음을 구성하고 업로드해야 합니다.
upstream web {
server serviceserver1.com
server serviceserver2.com
server serviceserver3.com
}
그래서 당신이 찾고 있는 것은: proxy_next_upstream
그리고 입니다 proxy_connect_timeout
.
이 시도:
location / {
proxy_pass $scheme://web;
proxy_redirect off;
proxy_next_upstream error timeout invalid_header http_500;
proxy_connect_timeout 2;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For
$proxy_add_x_forwarded_for;
}