검색

4.7. 정적 웹 호스팅

download PDF

스토리지 관리자는 Ceph Object Gateway를 구성하여 S3 버킷에서 정적 웹 사이트를 호스팅할 수 있습니다. 기존 웹 사이트 호스팅에는 각 웹 사이트에 대한 웹 서버를 구성해야 하며, 콘텐츠가 동적으로 변경되지 않을 때 리소스를 비효율적으로 사용할 수 있습니다. 예를 들어 PHP, 서블릿, 데이터베이스, nodejs 등과 같은 서버 측 서비스를 사용하지 않는 사이트를 예로 들 수 있습니다. 이 접근 방식은 각 사이트에 대해 웹 서버를 사용하는 가상 머신을 설정하는 것보다 훨씬 경제적입니다.

사전 요구 사항

  • 정상적이고 실행 중인 Red Hat Ceph Storage 클러스터입니다.

4.7.1. 정적 웹 호스팅 가정

정적 웹 호스팅에는 Red Hat Ceph Storage 클러스터를 실행하는 하나 이상의 Ceph Object Gateway 인스턴스와 정적 웹 사이트에 대해 두 개 이상의 Ceph Object Gateway 인스턴스가 필요합니다. Red Hat은 각 영역에 HA(고가용성) 프록시 및 keepalived 와 같은 로드 밸런서를 사용하는 여러 게이트웨이 인스턴스가 있다고 가정합니다.

중요

Red Hat 은 표준 S3/Swift API와 정적 웹 호스팅을 동시에 배포하기 위해 Ceph Object Gateway 인스턴스 사용을 지원하지 않습니다.

4.7.2. 정적 웹 호스팅 요구 사항

정적 웹 호스팅 기능은 자체 API를 사용하므로 S3 버킷에서 정적 웹 사이트를 사용하도록 게이트웨이를 구성하려면 다음이 필요합니다.

  1. S3 정적 웹 호스팅은 표준 S3/Swift API 사용 사례에 사용되는 인스턴스와 별도의 Ceph Object Gateway 인스턴스를 사용합니다.
  2. S3 정적 웹 사이트를 호스팅하는 게이트웨이 인스턴스에는 표준 S3/Swift API 게이트웨이 인스턴스에서 별도의 겹치지 않는 도메인 이름이 있어야 합니다.
  3. S3 정적 웹 사이트를 호스팅하는 게이트웨이 인스턴스는 표준 S3/Swift API 게이트웨이 인스턴스와 별도의 공용 IP 주소를 사용해야 합니다.
  4. S3 정적 웹 사이트 로드 밸런싱을 호스팅하는 게이트웨이 인스턴스 및 필요한 경우 HAProxy/keepalived를 사용하여 SSL을 종료합니다.

4.7.3. 정적 웹 호스팅 게이트웨이 설정

정적 웹 호스팅에 대해 Ceph Object Gateway를 활성화하려면 다음 옵션을 설정합니다.

구문

ceph config set client.rgw OPTION VALUE

예제

[ceph: root@host01 /]# ceph config set client.rgw rgw_enable_static_website true
[ceph: root@host01 /]# ceph config set client.rgw rgw_enable_apis s3,s3website
[ceph: root@host01 /]# ceph config set client.rgw rgw_dns_name objects-zonegroup.example.com
[ceph: root@host01 /]# ceph config set client.rgw rgw_dns_s3website_name objects-website-zonegroup.example.com
[ceph: root@host01 /]# ceph config set client.rgw rgw_resolve_cname true

rgw_enable_static_website 설정은 true 여야 합니다. rgw_enable_apis 설정은 s3website API를 활성화해야 합니다. rgw_dns_namergw_dns_s3website_name 설정은 정규화된 도메인을 제공해야 합니다. 사이트에서 정식 이름 확장을 사용하는 경우 rgw_resolve_cname 옵션을 true 로 설정합니다.

중요

rgw_dns_namergw_dns_s3website_name 의 FQDN은 겹치 않아야 합니다.

4.7.4. 정적 웹 호스팅 DNS 구성

다음은 가정된 DNS 설정의 예입니다. 처음 두 행은 표준 S3 인터페이스를 사용하여 게이트웨이 인스턴스의 도메인을 지정하고 IPv4 및 IPv6 주소를 가리킵니다. 세 번째 줄은 표준 이름 확장을 사용하여 S3 버킷에 대한 와일드카드 CNAME 설정을 제공합니다. 네 번째 줄과 다섯 번째 줄은 S3 웹 사이트 인터페이스를 사용하여 게이트웨이 인스턴스의 도메인을 지정하고 해당 IPv4 및 IPv6 주소를 가리킵니다.

objects-zonegroup.domain.com. IN    A 192.0.2.10
objects-zonegroup.domain.com. IN AAAA 2001:DB8::192:0:2:10
*.objects-zonegroup.domain.com. IN CNAME objects-zonegroup.domain.com.
objects-website-zonegroup.domain.com. IN    A 192.0.2.20
objects-website-zonegroup.domain.com. IN AAAA 2001:DB8::192:0:2:20
참고

처음 두 줄의 IP 주소는 네 번째와 다섯 번째 줄의 IP 주소와 다릅니다.

다중 사이트 구성에서 Ceph Object Gateway를 사용하는 경우 라우팅 솔루션을 사용하여 트래픽을 클라이언트에 가장 가까운 게이트웨이로 라우팅하는 것이 좋습니다.

AWS(Amazon Web Service)에는 호스트 이름과 일치하도록 정적 웹 호스트 버킷이 필요합니다. Ceph는 DNS를 구성하는 몇 가지 방법을 제공하며 프록시에 일치하는 인증서가 있는 경우 HTTPS가 작동합니다.

하위 도메인의 버킷에 호스트 이름

AWS 스타일 S3 하위 도메인을 사용하려면 DNS 항목에서 요청을 모든 버킷으로 리디렉션할 수 있는 와일드카드를 사용합니다. DNS 항목은 다음과 같을 수 있습니다.

*.objects-website-zonegroup.domain.com. IN CNAME objects-website-zonegroup.domain.com.

버킷 이름이 bucket1 인 버킷 이름에 액세스합니다.

http://bucket1.objects-website-zonegroup.domain.com

버킷이 일치하지 않는 호스트 이름

Ceph는 요청에 버킷 이름을 포함하지 않고 Ceph Object Gateway에 고유한 도메인 이름을 버킷에 매핑하는 기능을 지원합니다. 도메인 이름을 사용하여 버킷에 액세스하려면 도메인 이름을 버킷 이름에 매핑합니다. DNS 항목은 다음과 같을 수 있습니다.

www.example.com. IN CNAME bucket2.objects-website-zonegroup.domain.com.

여기서 버킷 이름은 bucket2 입니다.

다음과 같은 방식으로 버킷에 액세스합니다.

http://www.example.com

CNAME을 사용하여 호스트 이름으로 긴 버킷

AWS는 일반적으로 도메인 이름과 일치하도록 버킷 이름이 필요합니다. CNAME을 사용하여 정적 웹 호스팅에 대한 DNS를 구성하려면 DNS 항목은 다음과 같을 수 있습니다.

www.example.com. IN CNAME www.example.com.objects-website-zonegroup.domain.com.

다음과 같은 방식으로 버킷에 액세스합니다.

http://www.example.com

CNAME 없이 호스트 이름으로 긴 버킷

DNS 이름에 SOA,NS,MX 또는 TXT 와 같은 다른 비 CNAME 레코드가 포함된 경우 DNS 레코드는 도메인 이름을 IP 주소에 직접 매핑해야 합니다. 예를 들면 다음과 같습니다.

www.example.com. IN A 192.0.2.20
www.example.com. IN AAAA 2001:DB8::192:0:2:20

다음과 같은 방식으로 버킷에 액세스합니다.

http://www.example.com

4.7.5. 정적 웹 호스팅 사이트 생성

정적 웹 사이트를 만들려면 다음 단계를 수행합니다.

  1. S3 버킷을 생성합니다. 버킷 이름 MIGHT은 웹 사이트의 도메인 이름과 동일합니다. 예를 들어 mysite.com 의 버킷 이름이 mysite.com 일 수 있습니다. 이는 AWS에 필요하지만 Ceph에는 필요하지 않습니다.

  2. 정적 웹 사이트 콘텐츠를 버킷에 업로드합니다. 콘텐츠에는 HTML, CSS, 클라이언트 측 JavaScript, 이미지, 오디오/비디오 콘텐츠 및 기타 다운로드 가능한 파일이 포함될 수 있습니다. 웹 사이트에는 index.html 파일이 있어야 하며 error.html 파일이 있을 수 있습니다.
  3. 웹사이트의 내용을 확인합니다. 이 시점에서 버킷의 작성자만 콘텐츠에 액세스할 수 있습니다.
  4. 공개적으로 읽을 수 있도록 파일에 대한 권한을 설정합니다.
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.