• Дигитални аксесоари
  • сървър
  • Дигитален живот
  • Политика за поверителност
  • Свържете се с нас
  1. Home
  2. Article
  3. Виртуални хостове

Виртуални хостове

Rsdaa 17/12/2021 1752

Виртуалният хост е конфигурационен обект, който позволява на една хост машина да прилича на множество хост машини. Той поддържа списък с типове многофункционални разширения за интернет поща (MIME), които обработва. Можете да асоциирате виртуален хост към един или повече уеб модули, но можете да асоциирате всеки уеб модул с един и само един виртуален хост. Ресурсите, свързани с един виртуален хост, не могат да споделят данни с ресурси, свързани с друг виртуален хост, дори ако виртуалните хостове споделят една и съща физическа машина.

Всеки виртуален хост има логическо име и списък с един или повече DNS псевдоними, с които е известен. DNS псевдонимът е TCP/IP името на хоста и номера на порта, който се използва за заявка на сървлета, например yourHostName:80. Когато не е указан номер на порт, се приема 80.

Конфигурацията на виртуален хост използва записи със заместващи знаци с портовете за своите записи на виртуален хост.

Псевдонимът по подразбиране е *:80, като се използва външен порт, който не е защитен. Псевдонимите от формата *:9080 използват вътрешния порт, който не е защитен. Псевдонимите под формата *:9443 използват защитения вътрешен порт. Псевдонимите във формата *:443 използват защитен външен порт.

Заявка на клиент за сървлет, файл на JavaServer Pages или свързан ресурс съдържа DNS псевдоним и унифициран индикатор за ресурс (URI), който е уникален за този ресурс. Когато се получи клиентска заявка за сървлет, файл на JavaServer Pages или свързан ресурс, DNS псевдонимът се сравнява със списъка на всички известни групи виртуални хостове, за да се намери правилният виртуален хост, а URI се сравнява със списъка на всички известни URI групи, за да намерите правилната URI група. Ако виртуалната хост група и URI групата бъдат намерени, заявката се изпраща до съответната сървърна група за обработка и отговорът се връща към браузъра. Ако съответстваща виртуална хост група или URI група не бъде намерена, на браузъра се връща грешка.

Виртуален хост не е свързан с определен възел (машина). Това е конфигурация, а не жив обект, поради което можете да го създадете, но не можете да го стартирате или спрете. Виртуален хост по подразбиране, наречен default_host, се конфигурира автоматично при първото стартиране на сървър на приложения. Освен ако не искате изрично да изолирате ресурсите един от друг на един и същ възел (физическа машина), вероятно нямате нужда от никакви виртуални хостове в допълнение към хоста по подразбиране.

DNS псевдонимите за виртуалния хост по подразбиране са конфигурирани като *:80 и *:9080, където порт 80 е портът на HTTP сървъра, а порт 9080 е портът за HTTP транспорта на сървъра по подразбиране. Виртуалният хост по подразбиране включва общи псевдоними, като IP адрес на машината, кратко име на хост и пълно име на хост. Един от тези псевдоними включва първата част от пътя за достъп до ресурс като сървлет. Например, псевдонимът localhost:80 се използва в заявката http://localhost:80/myServlet.

Добавянето на локален хост към виртуалните хостове добавя името на хоста и IP адреса на машината с локален хост към таблицата с псевдоними. Това позволява на отдалечен потребител достъп до административната конзола.

Можете да използвате административната конзола, за да добавяте или променяте DNS псевдоними, ако искате да използвате портове, различни от портовете по подразбиране. Ако направите промяна на DNS псевдоним, трябва да генерирате отново конфигурацията на добавката на уеб сървъра. Можете да използвате административната конзола, за да започнете регенерирането на приставката.

Когато поискате ресурс, продуктът се опитва да съпостави заявката с псевдоним на определен виртуален хост. Частта http://host:port/ на виртуалния хост не е чувствителна към главни и малки букви, но URL адресът, който следва, е чувствителен към главни и малки букви. Съвпадението на URL трябва да е буквено-цифрово точно. Различните номера на портове се третират като различни псевдоними.

Например, заявката http://www.myhost.com/myservlet се свързва успешно с http://WWW.MYHOST.COM/myservlet, но не и с http://WWW.MYHOST.COM/MYSERVLET или Www. Myhost.Com/Myservlet. В последните два случая тези съпоставяния са неуспешни поради чувствителност към главни и малки букви. Заявката http://www.myhost.com/myservlet не се свързва успешно към http://myhost/myservlet или към http://myhost:9876/myservlet. Тези съпоставяния са неуспешни, защото не са буквено-цифрово правилни.

Можете да използвате записи със заместващи знаци за псевдоними по порт и да посочите, че всички валидни комбинации от име на хост и адрес на конкретен порт се съпоставят с конкретен виртуален хост.

Ако поискате ресурс, използвайки псевдоним, който не може да бъде съпоставен с псевдоним на дефиниран виртуален хост, получавате грешка 404 в браузъра, който сте използвали за подаване на заявката. Съобщение гласи, че виртуалният хост не може да бъде намерен.

Два набора асоциации възникват за виртуални хостове. Разгръщането на приложение свързва приложение с виртуален хост. Дефинициите на виртуален хост свързват мрежовия адрес на машината и присвояването на порта на HTTP транспорта или уеб сървъра на сървъра на приложения с виртуалния хост. Разглеждайки потока от заявката на уеб клиента за сървлета за наблюдение, например, се случват следните действия:

Уеб клиентът пита за сървлета за наблюдение: на уеб адрес http://www.some_host.some_company.com:9080/snoop Машината some_host има 9080 порт, присвоен на самостоятелния сървър на приложения, server1.server1 разглежда виртуалния хост присвоявания за определяне на виртуалния хост, който е присвоен на псевдонима some_host.some_company.com:9080. Сървърът на приложения установява, че не съществува изричен псевдоним за този DNS низ. Съществува обаче присвояване на заместващ знак за име на хост * на порт 9080. Това е съвпадение. Виртуалният хост, който дефинира съвпадението, е default_host. Сървърът на приложения разглежда приложенията, разположени на default_host, и намира snoop servlet. Сървърът на приложения обслужва приложението на уеб клиента и рикуестърът може да използва snoop servlet.

Сървърът на приложения търси съвпадение, използвайки изричния адрес, посочен в адреса на уеб клиента. Въпреки това може да разреши съвпадението с всеки друг псевдоним, който съответства на шаблона, преди да съпостави изричния адрес. Простото дефиниране на псевдоним първи в списъка с псевдоними не гарантира реда на търсене, когато продуктът търси съответстващ псевдоним.

Може да възникне проблем, ако използвате един и същ псевдоним за два различни виртуални хоста. Да предположим например, че сте инсталирали приложението по подразбиране и сървлета за наблюдение на default_host. Имате и друг виртуален хост, наречен admin_host. Вие обаче не сте инсталирали приложението по подразбиране или сървлета за наблюдение на admin_host.

Да приемем, че идва заявка за уеб клиент за http://my_machine.com:9080/snoop.

Ако сървърът на приложения съответства на заявката срещу *:9080, приложението се обслужва от default_host. Ако сървърът на приложения съответства на заявката към my.machine.com:9080, приложението не може да бъде намерено. Възниква грешка 404 в браузъра, който издава заявката. Съобщение гласи, че виртуалният хост не може да бъде намерен.

Този проблем е резултат от това, че не е намерено исканото приложение в първия виртуален хост, който има съвпадащ псевдоним. Правилният начин за кодиране на псевдоними е името на псевдонима на входяща заявка да съответства само на един виртуален хост във всички ваши дефиниции на виртуален хост. Ако URL може да съответства на повече от един виртуален хост, можете да видите току-що описания проблем.


PREV: Не може да се свърже с грешка на LDAP сървъра в Nagios

NEXT: VMware vSphere & Microsoft LDAP Channel Binding & Signing...

Popular Articles

Hot Articles
Back to Top