서버에 대한 역방향 프록시를 설정하기 위해 nginx를 설정할 수 있습니까? 그러나 파일이 서버 A에 없으면 파일이 확실히 있을 서버 B로 대체됩니다.
2TB S3 마이그레이션을 수행해야 하며 nginx를 이런 방식으로 설정할 수 있다면 프로세스가 단순화될 것입니다.
현재 역방향 프록시 구성으로 사용하고 있는 내용은 다음과 같습니다.
http {
proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=STATIC:100m
inactive=30d max_size=10g;
server {
location /image/ {
proxy_pass https://origin.example.com/;
proxy_set_header Host origin.example.com;
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_cache STATIC;
proxy_cache_valid 200 30d;
proxy_cache_use_stale error timeout invalid_header updating
http_500 http_502 http_503 http_504;
}
답변1
Nginx Plus에는 Active Health Check 기능이 있습니다. 2개의 서버를 업스트림 그룹에 추가하고 파일의 URI와 관련하여 활성 상태 확인을 적용할 수 있으며, 404 오류가 반환되면 Nginx는 해당 서버를 비정상으로 표시하고 모든 요청은 다른 서버로 흐릅니다. 그룹에서.
https://docs.nginx.com/nginx/admin-guide/load-balancer/http-health-check/#hc_active
그러나 이렇게 하면 모든 트래픽이 다른 서버로 반송됩니다.
업스트림을 제어할 수 있는 경우 다음을 사용할 수도 있습니다 X-Accel
.
https://www.nginx.com/resources/wiki/start/topics/examples/x-accel/
업스트림에 파일이 없으면 업스트림은 X-Accel-Redirect
역방향 프록시가 읽을 헤더를 반환하고 다른 서버에서 파일을 요청합니다.