Umbraco에서 ImageProcessor를 사용하여 이미지 로딩, 크기 조정 및 많은 작업을 수행 할 때 성능이 저하되었습니다. 현재 사용Umbraco와 AWS S3 버킷 간의 이미지 및 캐시 된 이미지 (ImageProcessor)에 대한 성능이 매우 낮습니다.
:
- Umbraco 7.4.3
- AWSSDK.Core 3.3.11
- AWSSDK.S3 3.3.5.11
- ImageProcessor 2.5.3
- ImageProcessor.Web 4.8. 3
- Umbraco.Storage.S3 1.0.23 (더 이상 유지 관리되지 않음)
CloudFront는 이미지를 캐싱하지 않습니다. (사용자 정의 원점은 내가 이해 한 것에서 캐싱되지 않습니다.) 사이트가 넘어지지 않도록하려면 CloudFront와 Umbraco 서버 사이에 NGINX 서버가 있습니다. 표준 AWS로드 밸런서).
2 x c4.xlarge 인스턴스는 이미지 처리에 즉시 대응할 수 없다고 생각하기 어렵습니다. Log snippet
난 그냥 어떤 차이를 만들 것입니다 있는지 확인하기 위해 AWS 액세스 키의 새로운 쌍을 추가하는 듯했으나 슬프게도, 여전히 느린 :
것은 그 상황이 발생할 다음과 같다 나타났습니다. 백 오피스조차도 콘텐츠 탭과 미디어 탭 모두에서 이미지 미리보기를로드하는 데 오래 걸립니다.
구성을 현명하게 설정하면 인터넷에서 발견 한 내용 (FileSystemProviders 및 ImageProcessor 구성)에 대해 세 가지 검사를 수행했습니다.
Imageprocessor 캐시 설정 :
<?xml version="1.0" encoding="utf-8" ?>
<!-- For more information on using transformations
see the web.config examples at http://go.microsoft.com/fwlink/?LinkId=214134. -->
<caching xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform" currentCache="AmazonS3Cache" xdt:Transform="Replace">
<caches>
<cache name="AmazonS3Cache" type="formula_e.web.cms.Core.ImageProcessor.AmazonS3Cache, formula-e.web.cms" maxDays="365" xdt:Locator="Match(name)" xdt:Transform="Replace">
<settings>
<setting key="AwsAccessKey" value="XXXXXXX" />
<setting key="AwsSecretKey" value="XXXXXXX" />
<setting key="AwsBucketName" value="XXXXXXX" />
<setting key="AwsEndpoint" value="http://XXXXXXX.s3.amazonaws.com/" />
<setting key="AwsBucketFolder" value="cache-live" />
<setting key="CachedCDNRoot" value="http://XXXXXXX.cloudfront.net" />
<setting key="StreamCachedImage" value="true" />
</settings>
</cache>
</caches>
</caching>
Imageprocessor 보안 설정 :
<?xml version="1.0" encoding="utf-8" ?>
<!-- For more information on using transformations
see the web.config examples at http://go.microsoft.com/fwlink/?LinkId=214134. -->
<security xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<services xdt:Transform="Replace">
<service prefix="media/" name="CloudImageService" type="ImageProcessor.Web.Services.CloudImageService, ImageProcessor.Web">
<settings>
<setting key="MaxBytes" value="41943040"/>
<setting key="Timeout" value="30000"/>
<setting key="Host" value="http://XXXXXXX.s3.amazonaws.com/media/"/>
</settings>
</service>
</services>
</security>
Filesytemproviders 설정 : 나는 문제가 무엇인지 찾아 가야합니까 어떻게
<?xml version="1.0" encoding="utf-8" ?>
<!-- For more information on using transformations
see the web.config examples at http://go.microsoft.com/fwlink/?LinkId=214134. -->
<FileSystemProviders xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<Provider alias="media" type="Umbraco.Storage.S3.BucketFileSystem, Umbraco.Storage.S3" xdt:Locator="Match(alias)" xdt:Transform="Replace">
<Parameters>
<!-- S3 Bucket Name -->
<add key="bucketName" value="XXXXXXX" />
<!-- S3 Bucket Hostname - Used for storage in umbraco's database (Should be blank when using Virtual File Provider) -->
<add key="bucketHostName" value="" />
<!-- S3 Object Key Prefix - What should we prefix keys with? -->
<add key="bucketKeyPrefix" value="media" />
<!-- AWS Region Endpoint (us-east-1/us-west-1/ap-southeast-2) Important to get right otherwise all API requests will return a 30x response -->
<add key="region" value="eu-west-1" />
</Parameters>
</Provider>
</FileSystemProviders>
?
umbraco를 CDN에 게시하는 방법에 대한 설명서를 확인 했습니까? – mootmoot
@mootmoot 링크를 공유하고 싶습니까? 나는이 프로젝트를 물려 받았기 때문에 내가 할 수있는 한 대부분의 셋업을 알아 내려고 노력했다. 감사합니다 – MrVentzi
Google 'umbraco 캐시 AWS CDN'하시기 바랍니다. CDN 캐시 설정은 간단하지 않습니다. – mootmoot