Как я могу принудительно перенаправить HTTP-запрос на https в автономном пассажирском режиме с балансировщиком нагрузки aws?

Я использовал пассажир отдельно для своего приложения. в настоящее время мое приложение работает как на http, так и на https. Я хочу перенаправить все HTTP-запросы на https. В моем приложении я использовал балансировку нагрузки. Я прочитал эти статьи

https://aws.amazon.com/premiumsupport/knowledge-center/redirect-http-https-elb/

https://www.phusionpassenger.com/library/config/standalone/intro.html#nginx-configuration-template

http://code.eklund.io/blog/2015/03/17/managing-rewrites-for-a-rails-app-on-heroku-with-nginx-plus-phusion-passenger/

Я пробовал эти 2 метода

1)

 if ($http_x_forwarded_proto = "http") { 
            return 301 https://$host$request_uri; 
        }

2)

if ($http_x_forwarded_proto != "https") {
      rewrite ^(.*)$ https://$server_name$REQUEST_URI permanent;
  }

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

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

Заранее спасибо:)

Ответ 1

Вы можете сделать это на уровне прокси или на уровне приложения. Чтобы сделать это на уровне приложения:

# config/environments/production.rb
...
config.force_ssl = true
...

Ответ 2

Я надеюсь, что все ваши сертификаты установлены правильно и указывают на правильный путь. Если не проверить приведенную ниже конфигурацию

Passenger.json

{
  "environment": "production",
  "instance_registry_dir": "/var/run/passenger-instreg",
  "daemonize": true,
  "user": "myappuser",
  "port": 443,
  "ssl": true,
  "ssl_certificate": "/path/to/ssl_cert.pem",
  "ssl_certificate_key": "/path/to/ssl_key.pem",
  "nginx_config_template": "/path/to/nginx.conf.erb"
}

Вам нужно использовать ту же конфигурацию, которую вы используете для nginx для перенаправления с http на https

http {
     server_tokens off;
        server {
            listen 80 default_server;
            listen [::]:80 default_server;

            # Redirect all HTTP requests to HTTPS with a 301 Moved Permanently response.
             return 301 https://$host$request_uri;
     }

Последняя ссылка
Вот конфигурация автономного пассажира для перенаправления с http на https last_link

Пожалуйста, обратитесь к ссылка