>  기사  >  운영 및 유지보수  >  $remote_addr을 기반으로 nginx 프런트엔드 배포를 구현하는 방법

$remote_addr을 기반으로 nginx 프런트엔드 배포를 구현하는 방법

王林
王林앞으로
2023-05-12 22:01:121485검색

요구 사항은 다음과 같습니다.

도메인 이름 아래에 여러 개의 서버가 있습니다. 이제 특정 지역의 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제