2017-02-23 2 views
0

Wir haben eine Drupal7-basierte E-Commerce-Website, die ich in AWS zu hosten versuche. Ich frage mich, ob AWS CloudFront sowohl für statische als auch für dynamische Inhalte verwendet werden kann. Vielleicht zwei Ursprünge oder so etwas? Nur eine wilde Vermutung. Der Grund, CDN zu verwenden, ist, unsere js, css und Bilder zu dienen. Die Dateien werden in EFS gespeichert. Ich habe mich nicht für S3 entschieden, da ich es umständlich finde und ich ein weiteres S3FS-Modul auf Drupal benötige und es konfiguriere. Kurz gesagt, wollte einfach nicht so gehen. Außerdem hat meine Region keine EFS, also musste ich die Seite in Irland hosten und brauche daher CDN. Ist es dennoch möglich, sowohl statische als auch dynamische Inhalte von CloudFront zu liefern?Kann AWS CloudFront sowohl dynamische als auch statische Inhalte bereitstellen?

Eine andere Frage ist, unterstützt CloudFront selbstsigniertes Zertifikat? Während des Tests hatte ich eine Testdomäne mit einem selbstsignierten Zertifikat erstellt, aber wenn ich sie an CloudFront füttere, wird ein Fehler ausgegeben. Ich denke, es ist nicht möglich, selbstsigniert zu verwenden, oder?

PS. Ich hatte die Route53 Punkt Cloudfront DNS

Aktualisiert

Lassen Sie mich die ganze Schritte erläutern, die ich durchgeführt:

  1. Added die selbst signiertes Zertifikat Chrom und mein System, jetzt habe ich sehe keine Seite, auf der steht, dass es unsicher ist ... also alles gut bis hier. enter image description here

  2. eine Cloudfront mit folgenden Einstellungen erstellt:

Allgemeine

Distribution ID E2RDLVLNKPEXQ9 

    ARN arn:aws:cloudfront::xxxx:distribution/E2RDLVLNKPEXQ9 

    Delivery Method Web 

    Cookie Logging Off 

    Distribution Status Deployed 

    Price Class Use All Edge Locations (Best Performance) 

    State Enabled 

    Alternate Domain Names (CNAMEs) 
    *.kiirana11.com 

    SSL Certificate Default CloudFront Certificate (*.cloudfront.net) 

    Domain Name xxxx.cloudfront.net 

    Custom SSL Client Support - 

    Supported HTTP Versions HTTP/2, HTTP/1.1, HTTP/1.0 

    IPv6 Enabled 

    Last Modified 2017-02-24 09:41 UTC+5:30 

Herkunft

Origin Domain Name 
xxxxelb-1927396229.eu-west-1.elb.amazonaws.com 

Origin ID 
PPRD-kirana11elb  

Origin SSL Protocols 
TLSv1.2 
TLSv1.1 
TLSv1 
SSLv3 

Origin Protocol Policy 
HTTP Only 
HTTPS Only 
Match Viewer 

HTTP Port 
80 

HTTPS Port 
443 

Verhalten

Path Pattern 
Default (*)  

Origin 
PPRD-kirana11elb 

Viewer Protocol Policy 
HTTP and HTTPS 

Allowed HTTP Methods 
GET, HEAD, OPTIONS, PUT, POST, PATCH, DELETE 

Cached HTTP Methods 
GET, HEAD +OPTIONS 

Forward Headers 
Whitelist 

Whitelist Headers 
CloudFront-Forwarded-Proto 
Host 

Object Caching 
Use Origin Cache Headers 
Minimum TTL 
0 
Maximum TTL 
31536000 
Default TTL 
86400 

Forward Cookies 
All 

Query String Forwarding and Caching 
Forward all, cache based on all 

Smooth Streaming 
No 

Restrict Viewer Access 
No 

Compress Objects Automatically 
No 

Cloudfront Aktueller Stand und

  1. Loaded in Cloudfront Route53 Eingesetzt aktiviert. Aus irgendeinem Grund wird es nicht automatisch für einen Namen gelaunt, ich musste den Cloudfront-DNS-Namen zwingend eingeben.

  2. installiert Drupal CDN Modul

Modus als "Origin Pull" gesetzt ist, CDN-Mapping hat Cloudfront URL mit https

beginnt nun das Problem:

[[email protected] ec2-user]# curl https://xxxx.cloudfront.net 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1"> 
<TITLE>ERROR: The request could not be satisfied</TITLE> 
</HEAD><BODY> 
<H1>ERROR</H1> 
<H2>The request could not be satisfied.</H2> 
<HR noshade size="1px"> 
CloudFront wasn't able to connect to the origin. 
<BR clear="all"> 
<HR noshade size="1px"> 
<PRE> 
Generated by cloudfront (CloudFront) 
Request ID: Fvf4qfAwuzBRS4J_SA6p1I-UYnvqSuZxdvXV1E6HuGEMGOxWPeORsQ== 
</PRE> 
<ADDRESS> 
</ADDRESS> 
</BODY></HTML>You have new mail in /var/spool/mail/ec2-user 

[[email protected] ec2-user]# curl -Ik https://website.com 
HTTP/1.1 200 OK 
Cache-Control: no-cache, must-revalidate 
Content-Language: en 
Content-Type: text/html; charset=utf-8 
Date: Fri, 24 Feb 2017 05:50:46 GMT 
Expires: Sun, 19 Nov 1978 05:00:00 GMT 
Server: Apache/2.4.25 (Amazon) OpenSSL/1.0.1k-fips mod_fcgid/2.3.9 
X-Content-Type-Options: nosniff 
X-Frame-Options: SAMEORIGIN 
X-Generator: Drupal 7 (http://drupal.org) 
X-UA-Compatible: IE=edge,chrome=1 
Connection: keep-alive 

Das gesamte Sie ist mit CDN bonkeriert worden, das ist, was ich sehe

enter image description here

Wenn ich CDN-Modul deaktivieren, ist alles gut aus der Sicht der Website Perspektive.

+0

Sie haben hier mindestens zwei Fragen. Die Antwort auf die erste - wie geschrieben - sollte aus einer Suche von Google oder Stack Overflow offensichtlich sein, also frage ich mich, ob Sie tatsächlich ein Problem haben, das Sie nicht mit statischen + dynamischen erwähnen, und stattdessen fragen, ob es ist möglich." Die zweite Frage nach dem Zertifikat benötigt Details. CloudFront unterstützt dies * nicht * nur beim Ursprung, nur bei der Verteilung. –

+0

@ Michael-sqlbot Kasse mein aktualisierten Beitrag –

+0

Verwenden Sie nicht '-k' mit Curl. Das ist ein Alias ​​für "--insecure", der ungültige oder nicht vertrauenswürdige SSL-Konfigurationen ignoriert. Wenn Sie diese Option verwenden müssen, bedeutet dies natürlich, dass Ihre SSL-Konfiguration ungültig ist und der Fehler 502 genau das ist, was CloudFront in diesem Fall * erwarten würde. CloudFront lässt keine unsicheren Verbindungen zum Ursprung zu. Ich habe eine möglicherweise ähnliche Fehlkonfiguration in [diese Antwort auf Serverfehler] (http://serverfault.com/a/779723/153161) angesprochen. –

Antwort

0

Das Problem war mit selbstsignierten Zertifikat. Ich hatte ein kostenloses SSL von Comodo bereitgestellt und konnte es konfigurieren. Voila! CloudFront konnte es identifizieren und meine Inhalte werden von ihm geliefert. Und der Google Pagespeed Index sprang ebenfalls von 74 auf 85.

Dank @ Michael - sqlbot für den Punkt zu mir zu klären.

1

ist es möglich, sowohl statische als auch dynamische Inhalte aus Cloudfront zu dienen?

Ja, CloudFront bietet auch dynamische Inhalte. Dies können PHP-Inhalte usw. sein. Ihre Ursprünge können S3- oder Webserver (aws-Instanzen) usw. sein. Bitte lesen Sie die CloudFront-Dokumentation für detaillierte Informationen zur Funktionsweise.

Ja, CloudFront unterstützt selbstsignierte Zertifikate. Sie können mehr darüber erfahren, welche Schritte Sie unternommen haben, um es einzurichten. Alternativ können Sie die Dokumentation hier überprüfen: http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cnames-and-https-requirements.html

Verwandte Themen