'호스트'에 따라 방문자를 특정 http 서비스로 안내하는 방법은 무엇입니까?

'호스트'에 따라 방문자를 특정 http 서비스로 안내하는 방법은 무엇입니까?

nginx 구성을 사용하여 사용자를 다른 웹 서비스로 안내하고 싶습니다.

이 시나리오는 호스트 이름이 ~인 내부 사용자를 위한 것입니다. 192.168.1.1일부 192.168.1.255웹 서비스를 제공하고 싶지만 다른 외부 방문자에게는 이것이 실현되기를 원하지 않습니다.

이 기능을 활성화하는 데 사용할 수 있다는 것을 알고 있지만 IP_TABLES주로 방화벽 목적으로 IP_TABLE 규칙을 사용하므로 이 구성과 혼합하고 싶지 않습니다.

에서 사용할 수 있는 구성이 있습니까 nginx.conf?

답변1

지도 지시문과 함께 GEO 모듈을 사용할 수 있습니다.

http {
  geo $special_service {
    default 0;
    192.168.1.0/24 1;
  }
  server {
    if ($special_service) {
      return 302 $scheme://$server_name/special-service/;
    }
  }
}

답변2

location민감한 콘텐츠를 다루는 별도의 블록을 만드세요 .

구성 지시어는 상속되지 않는다는 점을 명심하세요. 콘텐츠에 필요한 기존 `위치에 있는 모든 항목을 새 블록에 포함해야 합니다.

location /path/to/sensitive/stuff {
    # any other config that you need goes here..
    # ...
    allow 192.168.1.0/24;
    deny all;
}

관련 정보