2017-12-21 1 views
0

build/1.coolfile.html이라는 파일을 URL /1/coolfile에 게재하고 싶습니다. 그런 URL을 "다시 쓰는"방법을 찾을 수 없습니다. 내가 보는 모든 것은 http redirect을 수행하는 방법입니다.정적 사이트를 호스팅 할 때 리디렉션을 수행하지 않고 트래픽을 라우팅 할 수 있습니까?

+0

안녕하세요, 저는 당신이 저를 downvoted 것으로 보았고 제 질문을 끝내려고 노력할 것입니다. 그것은 할 노력이 적은 것 같습니다. 해결책이 너무 명백하기 때문에 아마 당신은 downvote와 함께 가기 위해이 질문에 직접적으로 응답하는 실제 답변에 대한 링크를 제공 할 수 있습니다. – user875234

+0

진지하게 당신이 downvoting조차 무엇인지 확실하지 않습니다. 어쩌면 당신은 그것을 설명 할 수 있습니다. 임씨는 무언가를 찾는 데 많은 노력을 기울이지 않고 간단한 대답을 찾고 있습니다. – user875234

+0

이 질문은 downvoted해서는 안됩니다; 그것은 잘 형성되고 관련성 있고 흥미 롭습니다. –

답변

0

Michael - sqlbot이 암시하고있는 것처럼 클라우드 프론트와 람다로 할 수 있습니다. Cloudfront는 설치하기 쉽지만 lambda를 설정하면 작동하지 않으며 작동하지 않으며 단서가 없습니다. 결국 마침내 작동 할 때까지 무작위로 몇 시간 동안 시도해야합니다. 재미있게 보내십시오.

편집 - 친절하고 되감기 쉬워 질 것입니다.

  1. S3 버킷을 가리키는 배포판을 설정하십시오. 이미 S3 버킷을 만든 경우 하나의 배포 만 필요하다는 사실을 알 수 있습니다. 경로 53으로 이동하여 배포시 A 레코드를 가리 킵니다. 문서에서 CNAME을 사용한다고 말할 수 있습니다. CNAME이 example.com 및 www.example.com에서 작동하지 않았기 때문에 A를 사용했습니다.
  2. 람다를 만들기 위해 특별한 IAM 계정이 필요하지 않습니다. 관리자 계정에서 수행하십시오 (보안 사용자는 울 것입니다).
  3. 람다를 만드십시오. 람다가 새로운 역할을 수행하도록하십시오. IAM에서 해당 역할에 대한 정책을 편집해야합니다 (aws 콘솔로 이동하여 IAM을 입력하십시오).

    { 
    "Version": "2012-10-17", 
    "Statement": [ 
        { 
         "Sid": "VisualEditor0", 
         "Effect": "Allow", 
         "Action": [ 
          "logs:CreateLogStream", 
          "logs:PutLogEvents", 
          "logs:CreateLogGroup", 
          "s3:GetObject" 
         ], 
         "Resource": "*" 
        } 
    ] 
    

    }

  4. 당신의 람다를 작성하고 배포합니다 : 광산이 (GetObject를 내가 S3 추가 통지)처럼 보인다. 그들이 가지고있는 시작 코드로 가십시오. 오른쪽 상단에 람다의 "uri"가 출력됩니다. 그것은 다음과 같이 보입니다. arn:aws:lambda:us-east-1:169014044482:function:RewriteURL:9
  5. 클라우드 프론트로 돌아 가기> 배포> 동작> 람다 함수 연관> 원점 요청 (캐싱되지 않았으며 버킷에서 요청 됨)과 뷰어 요청 (캐싱되고 요청 됨)에 하나 추가 cloudfront). 텍스트 상자에서 위의 "uri"를 사용하십시오.
  6. cloudfront가 업데이트되어 사이트로 이동하는 데 1 년을 기다리십시오. 당신이 작동한다면 lambda> yourLambdaFunctionName에 대한 섹션 아래의 cloudwatch에있는 람다에 대한 로그를 보게 될 것입니다.
  7. 이것이 작동하지 않으면 배포 URL로 곧바로 갈 수 있습니다 (d1tplmeznzg2c3.cloudfront.net처럼 보일 수 있습니다).). 귀하의 DNS에있는 어떤 것이 옳지 않은 경우에 도움이 될 수 있습니다. 그런 식으로 적어도 람다가 제대로 작동하고 작동하는지 확인할 수 있습니다.
  8. 일단 당신이 모든 일을 끝내면, 이것과 비슷한 모양의 람다를 쓸 수 있습니다. (내가이 하하를 쓴 이후로 변경하지 않았다면).

    exports.handler = (이벤트, 컨텍스트, 콜백) => { const request = event.Records [0] .cf.request; request.uri = "/images/favicon.png"; 콜백 (null, request); } // 죄송하지만 stackoverflow는이 코드를 형식화하지 않습니다. 네, 각 줄은 4 칸으로 들여 쓰고 줄 바꿈은 위와 아래에 있습니다. LOLLL !!!!

아마존 콘솔에서 다른 서비스에 액세스 확실히 관계없이 당신이 있던 페이지의 콘솔로 리디렉션이 있는지 확인하기 위해 사용자가 새 탭을 열 매번 다시 로그인해야합니다. 리디렉션을 수행하는 방법을 묻지 마십시오. 시도한 모든 솔루션이 작동하지 않으며 많은 노력을했습니다. ... 당신이 AWS를 사용하기 시작하면 AWS를 사용하지 말 것을 권고합니다.

0

AWS에서 URL을 다시 쓸 수있는 서비스가 없다는 것을 알고있는 한. 이 작업을 수행하려면 Apache 또는 nginx와 같은로드 밸런서를 배포해야합니다. 인프라를 만들고 관리하지 않으려면 Elastic Beanstalk에서 Apache를 실행할 수 있다고 생각합니다.

관련 문제