Mājas lapa » » Vai tīmekļa serveriem ir tikai viena vietne?

    Vai tīmekļa serveriem ir tikai viena vietne?

    Kad sākat mācīties, kā domēna vārdi, IP adreses, tīmekļa serveri un tīmekļa vietnes ir piemērotas un darbojas kopā, reizēm tā var būt nedaudz mulsinoša vai milzīga. Kā tas viss darbojas tik nevainojami? Šodienas SuperUser Q&A ziņojumam ir atbildes uz ziņkārīgiem lasītāja jautājumiem.

    Šodienas jautājumu un atbilžu sesija mums dod pieklājību no SuperUser-Stack Exchange apakšnodaļas, kas ir kopienas orientēta Q & A tīmekļa vietņu grupa.

    Foto pieklājīgi no Rosmarie Voegtli (Flickr).

    Jautājums

    SuperUser lasītājs user3407319 vēlas uzzināt, vai tīmekļa serveriem ir tikai viena vietne:

    Pamatojoties uz to, ko saprotu par DNS un domēna vārda sasaisti ar tīmekļa servera IP adresi, vietne tiek saglabāta, vai tas nozīmē, ka katrs tīmekļa serveris var turēt tikai vienu tīmekļa vietni? Ja tīmekļa serveriem ir vairāk nekā viena vietne, tad kā tas viss tiek atrisināts, lai es bez problēmām varētu piekļūt manai vajadzīgajai vietnei vai jaukt?

    Vai tīmekļa serveriem ir tikai viena vietne, vai arī tie ir vairāk?

    Atbilde

    SuperUser ieguldītājam Bobam ir atbilde:

    Būtībā pārlūkprogramma ietver domēna nosaukumu HTTP pieprasījumā, lai tīmekļa serveris zinātu, kurš domēns tika pieprasīts un var attiecīgi reaģēt.

    HTTP pieprasījumi

    Lūk, kā notiek jūsu tipiskais HTTP pieprasījums:

    1. Lietotājs nodrošina URL, kas ir http: // resursdators: ports / ceļš.

    2. Pārlūkprogrammā tiek izvilkts URL resursdatora (domēna) daļa un to pārvērš IP adresē (ja nepieciešams) procesā, ko sauc par nosaukumu izšķirtspēja. Šī tulkošana var notikt, izmantojot DNS, bet tai nav (piemēram, vietējais resursdators failā parastajās operētājsistēmās apiet DNS).

    3. Pārlūkprogramma atver TCP savienojumu ar norādīto portu vai noklusē uz IP adresi 80.

    4. Pārlūks nosūta HTTP pieprasījumu. HTTP / 1.1 gadījumā tas izskatās šādi:

    Uzņēmēja galvene ir standarta un nepieciešama HTTP / 1.1. Tas nav norādīts HTTP / 1.0 spec, bet daži serveri to atbalsta.

    No šejienes tīmekļa serverim ir vairāki informācijas elementi, ko var izmantot, lai izlemtu, kāda ir atbilde. Ņemiet vērā, ka viens tīmekļa serveris var būt saistīts ar vairākām IP adresēm.

    • Pieprasītā IP adrese no TCP ligzdas (ir pieejama arī klienta IP adrese, bet to reti izmanto, un dažreiz bloķēšanai / filtrēšanai)
    • Pieprasītais ports no TCP ligzdas
    • Pieprasītais resursdatora nosaukums, ko pārlūks HTTP pieprasījumā norādījis galvenajā galvenē
    • Pieprasītais ceļš
    • Citi virsraksti (sīkfaili utt.)

    Kā jūs, šķiet, esat pamanījuši, visbiežāk koplietošanas hostinga iestatījumi šajās dienās liek vairākām tīmekļa vietnēm vienā IP adresē: portu kombinācija, atstājot tikai uzņēmēju, lai atšķirtu tīmekļa vietnes.

    Tas ir pazīstams kā virtuālā resursdatora nosaukums, kas atrodas uz Apache-land, bet Nginx tos sauc par servera nosaukumiem servera blokos, un IIS dod priekšroku virtuālajam serverim.

    Kas par HTTPS?

    HTTPS ir nedaudz atšķirīgs. Viss ir identisks līdz TCP savienojuma izveidei, bet pēc tam ir jāizveido šifrēts TLS tunelis. Mērķis ir nezaudēt jebkādu informāciju par pieprasījumu.

    Lai pārliecinātos, ka tīmekļa serverim faktiski pieder šis domēns, tīmekļa serverim jānosūta uzticamas trešās personas parakstīts sertifikāts. Pēc tam pārlūks salīdzinās šo sertifikātu ar pieprasīto domēnu.

    Tas rada problēmu. Kā tīmekļa serveris zina, kurš resursdators / vietnes sertifikāts jānosūta, ja tas ir nepieciešams, pirms tiek saņemts HTTP pieprasījums?

    Tradicionāli tas tika atrisināts, izveidojot īpašu IP adresi (vai portu) katrai vietnei, kurai nepieciešama HTTPS. Acīmredzot tas ir kļuvis problemātisks, jo mēs beidzam IPv4 adreses.

    Ievadiet SNI (servera nosaukuma norāde). Pārlūkā tagad pārlūkprogramma TLS pārrunā resursdatora nosaukumu, tāpēc tīmekļa serverim ir šī informācija pietiekami agri, lai nosūtītu pareizo sertifikātu. Tīmekļa servera pusē konfigurācija ir ļoti līdzīga tam, kā konfigurēti HTTP virtuālie saimnieki.

    Negatīvie ir uzņēmēja vārds tagad tiek nodots kā vienkāršs teksts pirms šifrēšanas, un būtībā tas ir noplūdis. Tas parasti tiek uzskatīts par pieņemamu kompromisu, lai gan, ņemot vērā resursdatora nosaukumu, DNS vaicājumā parasti tiek atklāts.

    Ko darīt, ja pieprasāt tīmekļa vietni, izmantojot tikai IP adresi?

    Ko tīmekļa serveris dara, ja nezina, kurš konkrētais resursdators pieprasīts, ir atkarīgs no tīmekļa servera ieviešanas un konfigurācijas. Parasti ir norādīta “noklusējuma”, “nozvejas visa” vai “atpaliekošā” vietne, kas sniegs atbildes uz visiem pieprasījumiem, kuros nav skaidri norādīts resursdators.

    Šī noklusējuma vietne var būt sava neatkarīgā tīmekļa vietne (bieži parādot kļūdas ziņojumu), vai tā var būt jebkura no citām tīmekļa vietnēm tīmekļa serverī atkarībā no tīmekļa servera administratora preferencēm..


    Vai kaut kas jāpievieno paskaidrojumam? Skaņas izslēgšana komentāros. Vai vēlaties lasīt vairāk atbildes no citiem tehnoloģiju gudriem Stack Exchange lietotājiem? Apskatiet pilnu diskusiju pavedienu šeit.