2016-02-16 14 views
5

Amazon S3 ve Cloudfront kullanarak statik web sitesi barındırma özelliğini ayarlama konusunda bazı zorluklar yaşıyorum.Subfolder, S3, CloudFront ve Origin Path kullanarak statik web sitesi barındırma sorunuyla yeniden yönlendirme sorunu

Amazon S3 + Cloudfront kullanarak statik web siteleri olarak sunmak istediğimiz birçok web sitemiz var ve bunların hepsini tek bir S3 kabında barındırmayı tercih ediyoruz.

İlk kurulum oldukça basittir, ancak URL'de izleyen eğik çizgiyi atlıyorsa alt klasör yönlendirmeleriyle ilgili sorun yaşıyoruz.

örnek, kova tek bir web sitesi kurma:

s3: sitesinde1 için

kova içerikleri //bucket-name/websites/website1/index.html

s3 : //bucket-name/websites/website1/about/index.html

Bu belge için varsayılan dizin olan 'index.html' olarak ayarlanmış statik web sitesi barındırma özelliğini etkinleştirdim

Bu web sitesine hizmet vermek için bir Cloudfront web dağıtımı oluşturdum, varsayılan kök nesnesi 'index.html' olarak ayarlandı.

dağıtım '/ web siteleri/sitesinde1'

ayarlı Menşei Yolu ile statik web url 'bucket-name.s3-website-us-east-1.amazonaws.com' işaret eden bir özel bir kökene sahiptir 's3: //bucket-name/websites/website1/index.html' dağıtım url 'http://example.cloudfront.net' doğru gelen 'index.html' belgesini vermektedir gidildiğinde

da doğru buna 'http://example.cloudfront.net/about/' gidildiğinde 's3: //bucket-name/websites/website1/about/index.html'

'dan 'index.html' belgesine sahiptir. 'http://example.cloudfront.net/about' S3 beni '' adresine yönlendiriyor, çünkü Origin Yolu '/ website/website1' olarak ayarlanmış. Cloudfront 's3: // bucket-name/websites/website1 /' den index.html 'i isteyecektir. /websites/website1/about/index.html 'mevcut değil.

Burada bir şey mi özlüyorum? Bu sadece Cloudfront ve S3'ü kullanarak imkansız bir kurulum mu?

+0

eklerken yönlendirme kuralları değiştirmek hatırlamak gerektiğidir/

) "/ hakkında net –

+0

@KhalidT ah evet bu tam olarak böyle kurmak için çalışıyorum, sadece alt klasörleri için URL'lerde eğik çizgi ihmal ederken sahip olduğum yönlendirme sorunu olan –

+0

S3 nesne tabanlı bir depolama olduğundan, bu değil dosyaları ve klasörleri birbirinden ayırır (hepsi nesnelerdir). Yani, izleyen eğik çizgiyi atlamak bu tür davranışlara neden olabilir, –

cevap

8

Tam S3 kepçe yoluna ekleniyor S3 kova

https://docs.aws.amazon.com/AmazonS3/latest/dev/HowDoIWebsiteConfiguration.html#configure-bucket-as-website-routing-rule-syntax

sorun yönlendirme kurallarını kullanarak Orgigin Path bir eğik çizgi bakılması ile sonuçlanır neden yönlendirme o çözmenin bitti ("example.cloudfront.net/about", yol geçersiz olduğu için başarısız olan "example.cloudfront.net/websites/website1/websites/website1/about/" adresine yönlendirir)

Aşağıdaki yönlendirme kuralı bunu tetikleyerek çözer. Hatalı yol desen önekinde ve Cloudfront dağıtımına geri yönlendiriliyorsunuz n, istekten ayrılan önekle, yani ("example.cloudfront.net/about", "example.cloudfront" adresine yönlendiren "example.cloudfront.net/websites/website1/websites/website1/about/" adresine yönlendirir.Olumsuz yeni dağılımları

ben size dağıtımı için birden kökenlerini (her klasör için bir tane) eklemek gerek
<RoutingRules> 
    <RoutingRule> 
     <Condition> 
      <KeyPrefixEquals>websites/website1/websites/website1/</KeyPrefixEquals> 
     </Condition> 
     <Redirect> 
      <HostName>example.cloudfront.net</HostName> 
      <ReplaceKeyPrefixWith></ReplaceKeyPrefixWith> 
     </Redirect> 
    </RoutingRule> 
</RoutingRules> 
+0

Bu örnek kullanmayı denedim, ancak izleyen eğik çizgi sizin örneğinizde olduğu gibi eklenmedi. Bunun yerine, www.my-cname.com/about adresindeki www.my-cname.com/about/ adresime "çok fazla yönlendirme" ile sonuçlanan CNAME adlı web sitem olsun. – hybrid9

İlgili konular