Как заставить Эластичный Бобовый стебель nginx-поддержанный прокси-сервер автоперенаправлять от HTTP до HTTPS?

У меня есть приводимый в действие сайт Node.js, что я работаю на Amazon Эластичный Бобовый стебель.

Мое приложение Node.js слушает на порте 8080, и я использую nginx эластичную конфигурацию подсистемы балансировки нагрузки со своим приложением EB, слушая на порте 80 и 443 для HTTP и HTTPS.

Однако я только хочу принять торговлю своим приложением, которое появилось через HTTPS.

Я мог подстроить что-то в приложении для контакта с этим, но интересно способом заставлять подсистему балансировки нагрузки перенаправлять все Запросы HTTP на мой сайт через HTTPS.

58
задан 19 June 2014 в 05:21

1 ответ

Принятый ответ не работал на меня. После многих попыток (и часы поиска с помощью Google), я нахожу что-то, что действительно работало на меня. У меня также есть приводимый в действие сайт Node.js, что я работаю на Эластичном Бобовом стебле.

я использовал сценарий отсюда: https://adamjstevenson.com/tutorials/2017/02/02/configuring-and-forcing-https-for-aws-elastic-beanstalk.html

единственная модификация, которую я сделал, была, выключают

/opt/elasticbeanstalk/support/conf/webapp_healthd.conf

/etc/nginx/sites-available/elasticbeanstalk-nginx-docker-proxy.conf

, таким образом, она дает это:

files:
  "/tmp/45_nginx_https_rw.sh":
    owner: root
    group: root
    mode: "000644"
    content: |
      #! /bin/bash

      CONFIGURED=`grep -c "return 301 https" /etc/nginx/sites-available/elasticbeanstalk-nginx-docker-proxy.conf`

      if [ $CONFIGURED = 0 ]
        then
          sed -i '/listen 80;/a \    if ($http_x_forwarded_proto = "http") { return 301 https://$host$request_uri; }\n' /etc/nginx/sites-available/elasticbeanstalk-nginx-docker-proxy.conf
          logger -t nginx_rw "https rewrite rules added"
          exit 0
        else
          logger -t nginx_rw "https rewrite rules already set"
          exit 0
      fi

container_commands:
  00_appdeploy_rewrite_hook:
    command: cp -v /tmp/45_nginx_https_rw.sh /opt/elasticbeanstalk/hooks/appdeploy/enact
  01_configdeploy_rewrite_hook:
    command: cp -v /tmp/45_nginx_https_rw.sh /opt/elasticbeanstalk/hooks/configdeploy/enact
  02_rewrite_hook_perms:
    command: chmod 755 /opt/elasticbeanstalk/hooks/appdeploy/enact/45_nginx_https_rw.sh /opt/elasticbeanstalk/hooks/configdeploy/enact/45_nginx_https_rw.sh
  03_rewrite_hook_ownership:
    command: chown root:users /opt/elasticbeanstalk/hooks/appdeploy/enact/45_nginx_https_rw.sh /opt/elasticbeanstalk/hooks/configdeploy/enact/45_nginx_https_rw.sh

После eb deploy, просто перезапустите свой nginx sudo service nginx restart, и Вы установлены.

0
ответ дан 1 November 2019 в 13:52

Другие вопросы по тегам:

Похожие вопросы: