Я установил балансировщик нагрузки nginx с двумя сайтами. IP-адрес балансировщика нагрузки 192.168.123.10. Я хочу получить локальный доступ к двум сайтам, чтобы проверить, все ли работает. Но я немного озадачен именами хостов и доменных имен. Я дал первому сайту имя хоста: «test» и имя домена «mytest.local». Я прочитал в руководстве, что если я хочу получить доступ к сайту, я должен перейти на test.mytest.local и сделать так, чтобы DNS для этого адреса указывала на IP-адрес балансировщика нагрузки.
Но я не понимаю, как мой компьютер узнает, какой сайт я хочу, потому что, если мой другой сайт, который я загружаю, будет anothertest.mytest.local и он разрешается на тот же IP-адрес, как это будет по-другому?
Я не настроил DNS, я просто хочу проверить, работает ли nginx, так могу ли я получить доступ к сайту test.mytest.local локально? (без настройки DNS)?
Да, вы можете редактировать /etc/hosts
следующим образом:
192.168.0.10 example.com.local
В этом файле сначала проверяется, когда вы пытаетесь разрешить любое имя хоста, а затем он использует DNS-серверы. Я говорю это для того, чтобы вы знали, что, например, если вы добавите 1.2.3.4 google.com
в /etc/hosts
, вы не сможете попасть в настоящий google. com
"Блоки сервера NGINX", кажется, то, что вы ищете.
Веб-клиенты (т.е. Firefox или Chrome) посылают предполагаемый URL на веб-сервер, следовательно, веб-серверы могут предоставлять различные сайты на одном и том же IP на основе "имени", используемого веб-браузером для доступа к нему.
Взгляните на этот пример конфигурации с этой страницы NGINX, это вполне понятно:
http {
index index.html;
server {
server_name www.domain1.com;
access_log logs/domain1.access.log main;
root /var/www/domain1.com/htdocs;
}
server {
server_name www.domain2.com;
access_log logs/domain2.access.log main;
root /var/www/domain2.com/htdocs;
}
}