2014-06-12 23 views
5

Amazon S3'te barındırılan bir web sayfam var ancak http yanıt kodunun 200 olmasını istemiyorum. Sayfa, web sitemizi bakım amacıyla aldığım zaman trafiği yönlendireceğimiz bir bakım sayfasıdır.Amazon S3'teki bir nesnede http yanıt kodu nasıl değiştirilir

HTTP/1.1 503 Service unavailable 

Amazon S3 Object some metadata ekleme olanağı sunuyoruz ama http durum kodu için hiçbir şey yoktur:

Ben Amazon S3 sayfasında bir yanıt başlığı dahil etmek istiyoruz.

Mümkün mü?

+0

Merhaba Tom. Bunun için bir çözüm buldunuz mu? – WooDzu

cevap

-1

Amazon kadar burada, S3 özel durum kodu izin nginx kullanarak bir çözümdür.

Bakım modu için "ON anahtarı" olarak işlev gören belirli bir dosyanın varlığını izleriz. Bulunursa, S3'e proxy_pass isteği göndeririz - Hile return 503 içindir, ancak 503 durum kodunun işlenmesini nginx "adlandırılmış konum" a yönlendiririz.

Örnek nginx conf dosyası (sadece konuyla ilgili bitleri gösteriliyor):

server { 

    ... 

    # Redirect processing of 503 status codes to a nginx "named location". 
    error_page 503 @maintenance; 

    # "Maintenance Mode" is off by default - Use a nginx variable to track state. 
    set $maintenance off; 

    # Switch on "Maintenance Mode" if a certain file exists. 
    if (-f /var/www/app/maintenanceON) { 
     set $maintenance on; 
    } 

    if ($maintenance = on) { 
     # For Maintenance mode Google recommend using status code: "503 Service unavailable". 
     return 503; 
    } 

    ... 

    location @maintenance { 
     # Redirect the request to a static maintenance page hosted in Amazon S3. 
     # Note: Use proxy_pass instead of rewrite so we keep the 503 code (otherwise nginx serves a 302 code) 
     rewrite ^(.*)$ /index.html break; 
     proxy_pass http://bucketname.s3-website-us-east-1.amazonaws.com; 
    } 
} 
+0

Teknik olarak bu işlevsellik eksikliğine bir çözüm olsa da, bir web sitesi için durum kodunu düzeltmek için düşürülmüş kullanılabilirlik için 5 ABD Doları veya daha fazla ödeme yapılmasına gerçekten değer mi? tüm web sitesi için 0,05 $/aydan daha az maliyet olabilir? –

+0

Bizim için öyle. Web sitemizin maliyeti aylık 15.000 dolardır, bu nedenle S3'te barındırılan bir bakım web sitemize sahip olduğumuzdan emin olmak için zaman ayırdığınızdan emin olun. – Tom

+0

Uygun durum koduna sahip olmanın tercih edilmesine katılmıyorum. Benim sorum şu, soru başlığı "Amazon S3'teki bir nesnede http yanıt kodu nasıl değiştirilir"; S3 web sitesi nesnesinin durum kodunu düzeltmek için bir ana bilgisayar kurmak, S3 üzerinde nesnenin barındırılma maliyetine kıyasla astronomik bir fiyat artışıdır. –

2

emin değil hangi tarayıcıları veya tarayıcılar, bu destekler. Ancak bunu gerçekleştirmek için meta http-equiv status meta etiketini kullanabilirsiniz.

<meta http-equiv="status" content="503 Service Unavailable" /> 

şartname durum kodu olarak gönderilmişti 503 ise aynı şekilde bunu tedavi etmek söylüyor.

0

S3 yanıtlarının durum kodunu özelleştiremezsiniz.

Döndürülen durum kodlarını özelleştirebileceğiniz API Gateway'i S3 web sitesi hata sayfanıza proxy olarak kullanabilirsiniz.

İlgili konular