요구 사항은 다음과 같습니다.
도메인 이름 아래에 여러 개의 서버가 있습니다. 이제 특정 지역의 IP 사용자만 특정 서버에 액세스하도록 테스트하고 있습니다. 문제가 없으면 모두 업데이트하세요. 영향은 줄어들 것이며 문제는 제 시간에 발견되어 해결될 것입니다.
해결책:
nginx 모듈을 사용하여 전면에 일치 규칙을 구성하세요. -로드 밸런싱 전달 시스템 종료;
nginx 구성 vhost, 도메인 이름 아래 위치 세그먼트, 코드 추가
$remote_addr이 IP와 일치하면 이를 abc_test_server로 전달합니다.
server { listen 80; server_name abc.com.cn; access_log /dev/null; error_log /data/logs/error.log; location / { proxy_set_header host $host; proxy_set_header x-real-ip $remote_addr; proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for; if ($remote_addr ~ "202.96.134.100") { proxy_pass http://abc_test_server; break; } proxy_pass http://abc_server; } }
로드 밸런싱 구성도 필요합니다. 코드 추가
#abc_test only upstream abc_test_server { server 192.168.20.10:80; } #abc.com.cn upstream abc_server { server 192.168.20.11:80; server 192.168.20.12:80; server 192.168.20.13:80; }
설정된 IP는 테스트를 위해 백엔드 서버 192.168.20.10에 직접 배포됩니다.
위 내용은 $remote_addr을 기반으로 nginx 프런트엔드 배포를 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!