Как реализовать перенаправление на внешний URL - PullRequest
0 голосов
/ 09 января 2020

Мотивация: Мы поддерживаем веб-сайт, размещенный в помещении https://customerRelationsSite.com

Этот веб-сайт скоро исчезнет. Мы хотели бы создать URL-адрес для перенаправления на другие сайты со следующим варианты использования

  • перенаправление https://customerRelationsSite.com/eula/prodmanager?app=myapp на domain.salesforce.com/eula/prod/myapp

  • или перенаправление https://customerRelationsSite.com/eula/prodmanager?app=myapp на domain.salesforce.com/eula/prod/myapp

  • тем временем будет создано больше ссылок, которые постепенно заменят текущие ссылки сайта, т.е. https://customerRelationsSite.com/otherPaths, который будет перенаправлен на другие сайты https://othersite/newPath, поэтому решение должно быть настраиваемым для добавления новых перенаправлений

    Мы рассматриваем следующие варианты:

    1. При AWS создать корзину s3 как веб-сайт с перенаправлением URL, настроить cloudfront, r53 с s3 в качестве источника и указать исходную запись DNS https://customerRelationsSite.com на cloudfront

    или

  • Используйте поле linux с ha-proxy для перенаправления https://customerRelationsSite.com на новые сайты или пути, затем укажите исходную запись DNS https://customerRelationsSite.com на ha-proxy
  • Используйте linux deploy nginx, настройте обратный прокси, затем укажите исходную запись DNS https://customerRelationsSite.com на поле linux deploy nginx. Вот что мы сделали с одним из наших приложений. это может работать для случаев использования выше; на nginx .conf мы создали прокси
   location ~ ^/path/(?<section>.*) {
             resolver 8.8.8.8;
             proxy_pass https://othersite/newPath/$section$is$
           }

   location ~ ^/eula/prodmanager/(?<section>.*) {
             resolver 8.8.8.8;
             proxy_pass https://domain.salesforce.com/eula/prod/myapp/$section$is$
           }

Какие варианты вы бы рассмотрели? или есть другие оптимальные варианты?

1 Ответ

1 голос
/ 09 января 2020

Вы можете сделать это с помощью состояния c S3:

https://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html

Как вы говорите, просто укажите (через DNS, что вы предпочитаете) ) домен в пустую корзину S3 и настройте перенаправление (я), как описано выше.

Для получения бонусного балла вы также можете установить пользовательскую страницу 404 и c:

 <RoutingRules>
    <RoutingRule>
    <Condition>
      <HttpErrorCodeReturnedEquals>404</HttpErrorCodeReturnedEquals>
    </Condition>
    <Redirect>
      <ReplaceKeyWith>404.html</ReplaceKeyWith>
    </Redirect>
    </RoutingRule>
  </RoutingRules>

Это позволяет избежать любой сложности размещения haproxy экземпляров или Linux экземпляров в целом - и является экономически эффективным и рекомендуется AWS самими .

(на стороне примечание - трюк 404 прекрасно работает с одностраничными приложениями, размещенными статически в корзинах S3. Перенаправьте все URL-адреса 404 обратно на index.html - и пусть SPA сделает все остальное!)

...