AWS упругие бобовые стебли перенаправить www на не-www с местоположением nginx? - PullRequest
0 голосов
/ 18 января 2019

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

У меня есть конфигурация местоположения, которая перенаправляет http на https. Есть ли способ сделать это внутри этой конфигурации? Мне бы пришлось переопределить базовую конфигурацию nginx, чтобы добавить конфигурацию server (что является рекомендуемым способом сделать это в соответствии с nginx docs ), чего я бы предпочел не делать, если я не буду Т должен.

location / {
     set $redirect 0;
     if ($http_x_forwarded_proto != "https") {
       set $redirect 1;
     }
     if ($http_user_agent ~* "ELB-HealthChecker") {
       set $redirect 0;
     }
     if ($redirect = 1) {
       return 301 https://$host$request_uri;
     }

     proxy_pass          http://127.0.0.1:5000;
     proxy_http_version  1.1;

     proxy_set_header    Connection          $connection_upgrade;
     proxy_set_header    Upgrade             $http_upgrade;
     proxy_set_header    Host                $host;
     proxy_set_header    X-Real-IP           $remote_addr;
     proxy_set_header    X-Forwarded-For     $proxy_add_x_forwarded_for;
}

1 Ответ

0 голосов
/ 18 января 2019

Как я уже говорил, я бы использовал разные блоки серверов. Если вы не хотите, я бы использовал логику $ redirect в качестве логического значения и перенаправил бы жесткое кодирование $ host, вы все равно хотите без www, не так ли? Будет ли это соответствовать тому, что вы хотите сделать?:

location / {
     set $redirect 0;
     if ($http_x_forwarded_proto != "https") {
       set $redirect 1;
     }
     if ($host != "www.example.com") {
       set $redirect 1;
     }
     if ($http_user_agent ~* "ELB-HealthChecker") {
       set $redirect 0;
     }
     if ($redirect = 1) {
       return 301 https://example.com$request_uri;
     }

     proxy_pass          http://127.0.0.1:5000;
     proxy_http_version  1.1;

     proxy_set_header    Connection          $connection_upgrade;
     proxy_set_header    Upgrade             $http_upgrade;
     proxy_set_header    Host                $host;
     proxy_set_header    X-Real-IP           $remote_addr;
     proxy_set_header    X-Forwarded-For     $proxy_add_x_forwarded_for;
}

вот так у вас заканчивается только 1 перенаправление на правильную схему: // хост. Или есть что-то еще, что вы настраиваете в этом блоке местоположения, который я должен рассмотреть?

Надеюсь, я помог.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...