#nginx #proxy #dns #cloudflare
#nginx #прокси #dns #cloudflare
Вопрос:
Итак, я настраивал свою домашнюю сеть для размещения нескольких веб-сайтов в домене (и его поддоменах), используя комбинацию cloudflare для прокси-сервера и обеспечения защиты от DDoS / HTTPS для сайтов, а также обратный прокси-сервер Nginx, работающий в моей сети, чтобы позволить нескольким сайтам возвращаться из-за одного и того же шлюзана что указывают записи DNS в cloudflare.
Для целей этого объяснения я заменю свое реальное доменное имя на [domainNameHere] .
Первое, что нужно объяснить, это моя настройка DNS в cloudflare.
У меня есть 4 CNAME
записи, настроенные для выполнения следующих действий:
Обратите внимание, что я использую CNAME
записи, потому что у меня нет статического домашнего IP-адреса, поэтому я использую динамический DNS-адрес, который преобразуется в IP-адрес моего шлюза. Этот же динамический DNS-адрес используется вместо записи A, поскольку я стремлюсь не обновлять записи A постоянно, а вместо этого просто разрешить его с помощью автоматически обновляемой динамической записи DNS.
[domainNameHere].net
— Обратный прокси возвращает корневой сайт при запросе этого домена.www.[domainNameHere].net
— Ведет себя так же, как указано выше, только для обработки любых запросов www, обратный прокси возвращает один и тот же корневой сайт для обоихwwww
и имя корневого домена.map.[domainNameHere].net
— Когда вызывается этот поддомен[domainNameHere]
, обратный прокси вместо этого возвращает другой сайт (карту, как вы могли догадаться).test.[domainNameHere].net
— Это настройка прокси-записи DNS в cloudflare для будущих целей, я пока не намерен, чтобы он фактически возвращал сайт.
Теперь ожидаемое поведение заключается в том, что все эти записи DNS в настоящее время должны возвращать сайт, ожидать для test.[domainNameHere].net
которого не следует — я бы ожидал, что он просто вернет стандарт ERR_NAME_NOT_RESOLVED
, как и любая другая запись DNS, которая на самом деле никуда не ведет.
Вместо этого, однако, при test.[domainNameHere].net
использовании он возвращает корневой сайт, который [domainNameHere].net
и www.[domainNameHere].net
разрешает?
Использование map
www
или имя корневого домена возвращает ожидаемый контент.
Я считаю, что я что-то неправильно настроил в настройках Nginx, ниже приведены два файла конфигурации, которые в настоящее время находятся в моем sites-enabled
каталоге:
server {
listen 80;
listen [::]:80;
root /var/www/html;
index index.nginx-debian.html;
server_name [domainNameHere].net www.[domainNameHere].net;
location / {
try_files $uri $uri/ =404;
}
}
server {
listen 80;
listen [::]:80;
server_name test.[domainNameHere].net;
location / {
proxy_pass http://jake-server:8123;
}
}
Что-то не так с моей настройкой Nginx? Я думал, что поведение будет таким, что если я не настроил test.[domainNameHere].net
Nginx, то он не разрешится на обратном прокси и, следовательно, ничего не вернет или просто вернет страницу Nginx 404/403?
Может быть, это как-то связано с тем, как первый установочный файл настроен так, чтобы указывать на локальные файлы на прокси, а не использовать proxy_pass
, как обычно делается в обратном прокси?
Или это не проблема с Nginx, а проблема с тем, как я настроил Cloudflare?
Комментарии:
1.
ERR_NAME_NOT_RESOLVED
означает, что записи DNS нет, но она есть, и она указывает на сервер. Сервер будет использовать значение по умолчаниюserver
для ответа на запросы, которые не соответствуют aserver_name
. Посмотрите, как Nginx обрабатывает запрос для получения подробной информации.2. не могли бы вы опубликовать список записей на вкладке «DNS» cloudflare. У вас должно быть что-то вроде: [domainNameHere].net CNAME <динамическое dns-имя хоста> ПРОКСИРУЕТСЯ, www.[domainNameHere].net CNAME <динамическое dns-имя хоста> ПРОКСИРУЕТСЯ, карта. [domainNameHere].net CNAME <динамическое DNS-имя хоста> ПРОКСИРУЕТСЯ. Не должно быть записи для теста. [domainNameHere].net там
3. @RichardSmith Спасибо за ссылку, мне кажется, что наиболее подходящим для меня тогда было бы выполнить настройку, которая возвращает 444 или какой-либо другой код ошибки при использовании тестового домена — я отвечу и отвечу на свой вопрос, как только я пойду и выясню, как это сделать.