2017-01-24 15 views
0

Предположим, что у меня есть домен с именем example.com вместе со следующим «n» количеством поддоменов, все из них с записью «A» на тот же IP-адрес (предположим, сервер A).Переадресация доменной схемы Nginx, исключая субдомен

a.example.com, b.example.com, c.example.com ... z.example.com

Существует еще один поддомен 'email.example.com' с CNAME значение «mailgun .org.

Теперь у меня есть сервер A со следующей конфигурацией nginx, в которой я хочу перенаправить все HTTP-запросы на HTTPS.

server { 
    listen 80; 
    return 301 https://$host$request_uri; 
} 

И множество кодовых блоков для обработки отдельных запросов к югу от домена до 443.

server { 
    listen 443 ssl; 
    server_name a.example.com; 
    //SSL Details 
    location/{ 
      root /var/www/a/; 
    } 

Аналогично для остальных поддоменов, за исключением email.example.com, который указывает на mailgun.org.

http://email.example.com они будут перенаправлены на http://mailgun.com. (На уровне DNS)

http://example.com они будут перенаправлены на https://example.com. (На уровне сервера).

http://a.example.com они будут перенаправлены на https://a.example.com. (На уровне сервера)

Проблема: После посещения к http://example.com, когда кто-то пытается посетить http://email.example.com они перенаправляют https://email.example.com браузером. Поскольку у меня нет контроля над mailgun.org, я могу обрабатывать запросы https для email.example.com

Есть ли все-таки, чтобы установить конфигурацию nginx, где в каждом запросе HTTP будет перенаправлен на HTTPS, кроме email.example.com?

+0

То, что вы описываете, звучит довольно маловероятно - проблема с http: // email.example.com появляется в браузере или в DNS, поэтому конфигурация nginx не имеет к этому никакого отношения. Я предлагаю, чтобы ваш первый курс действий заключался в том, чтобы попытаться определить эмпирически, что DNS/браузер/nginx на самом деле делают. – symcbean

+0

Во-первых, нет перенаправления «на уровне DNS». Во-вторых, какие * данные SSL * вы используете? Есть ли заголовок HSTS? –

+0

@symcbean Точно. Как сообщить браузеру не перенаправлять http: // email.example.com на https? Когда я посещаю http://example.com его перенаправление на https://example.com, но после этого браузеры перенаправляют даже email.example.com на https. –

ответ

1

Хорошо, я нашел проблему.

Я изменил конфигурацию nginx на example.com, чтобы не включать поддомены.

т.е.., Измененное следующую строку

add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always; 

, как показано ниже.,

add_header Strict-Transport-Security "max-age=31536000;" always; 

Так что браузеры теперь не добавлять заголовок поддоменов.

 Смежные вопросы

  • Нет связанных вопросов^_^