Перенаправление не-www на www с помощью aws elastic beanstalk

Я использую Elastic Beanstalk и следую инструкциям по развертыванию приложения с помощью веб-сервера express следующим образом:
http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_nodejs_express.html

Эта настройка использует nginx и route 53.

Все работает хорошо, но теперь я пытаюсь перенаправить с URL-адресов не www/не https на «https://www.domain.com» (всегда https с www).

Я видел различные решения, которые либо не работают, либо кажутся избитыми. Как правильно это сделать aws console?

Большое спасибо!

1 ответ

  1. Вы можете настроить корзину S3, которая перенаправляет голый домен на www. Это объясняется здесь.

    http://docs.aws.amazon.com/AmazonS3/latest/dev/website-hosting-custom-domain-walkthrough.html

    Вы можете перенаправить http на https с помощью Cloudfront. Более подробную информацию вы можете прочитать здесь.

    http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https.html

    Вы можете настроить веб-сервер на инстансах EC2 для перенаправления, но для этого также необходимо настроить SSL-сертификат. С Cloudfront это проще сделать в AWS.

    Вы, вероятно, используете Apache, так что это было бы что-то вроде этого.

    NameVirtualHost *:80
    <VirtualHost *:80>
       ServerName mysite.example.com
       DocumentRoot /usr/local/apache2/htdocs 
       Redirect permanent / https://mysite.example.com/
    </VirtualHost>
    
    <VirtualHost _default_:443>
       ServerName mysite.example.com
       DocumentRoot /app/directory/
       SSLEngine On
       # etc...
    </VirtualHost>
    

    Затем настройте SSL-сертификат с помощью LetsEncrypt в сценарии развертывания.