Bir IP adresiniz ve birçok web siteniz nasıl var?


27

İnternette oturan bir IP adresim olduğu halde birçok web ismim olduğunda nasıl alabilirim? Örneğin, bir barındırma şirketi paylaşılan bir IP’ye sahipken ancak sınırsız alan adı alıyorum (bu kutudaki herkesle birlikte).

İnternette bir kutum var ama biri farklı www yazarken (farklı bir kutuda hemen yanında oturuyor) farklı bir web sitesine sahip başka bir makineye işaret etmek istiyorum. Tüm alt etki alanları bu mu? Teşekkür ederim.

Ben barındırma şirketiyim

Yanıtlar:


36

HTTP 1.1 protokolünün bir parçası.

Spesifik olarak, HTTP 1.1 protokolü, belirli bir sunucudaki istemcinin erişmeye çalıştığı web sitesini belirten "host:" adlı bir başlık içerir.

Öyleyse, snoopy.net ve woodstock.org hem 192.0.32.10 paylaşmak hem de tarayıcınız http://snoopy.net/doghouse belirli http isteğinden içerik almaya çalışıyorsa :

GET /doghouse HTTP/1.1
Host: snoopy.net

İstediğiniz url ise http://woodstock.org/seedsistek gibi görünür

GET /seeds HTTP/1.1
Host: woodstock.org

Her iki durumda da, bilgisayarınız ile sunucunun 80 numaralı bağlantı noktası arasında bir tcp soketi bulunur. Sunucu, Host başlığına göre /var/www/snoopy.net veya /var/www/woodstock.org/ adresinden içerik almayı bilirdi.

Tanımlama bilgileri için diğer başlıklar ve tarayıcı türü ve izin verilen içerik gibi diğer şeyler olabilir, ancak "Ana Bilgisayar" başlığı özellikle web sunucusunun hangi sanal web sitesinin istendiğini bilmesini sağlar.

RFC2616'da dahası var .

Bu nedenle, https sitelerinin * kendi IP adreslerine sahip olmaları gerekir - http işleminden önce ssl anahtar değişimi ve sertifika doğrulama işlemi yapılmalıdır, bu nedenle http sunucusu "woodstock" sertifikasını vermeyi bilmeyecektir. org "veya" snoopy.net ", 192.0.32.10 numaralı 443 numaralı bağlantı noktasında bir https bağlantısı aldığında.


Düzenle

** yorumlarda Grawity sunucu hangi web sitesi erişmeye çalıştığı gibi kullanıcı öğrenmesine izin TLS spec SSL için uzantıları vardır olduğuna dikkat çekiyor ve böylece en modern web tarayıcıları, bu uzantıları var zorunluluk biraz fazla olduğunu kuvvetli.


yani web sunucusu bu başlığı görecek ve doğru web sitesine taşıyacaktır. Aynı limanda bunun gibi birden fazla web siteniz olabilir mi?
Johnny

1
Tam olarak bunun için var. Apache gibi bir "sunucu", her biri bir "site" olan birçok DNS girişine sahip olan 192.0.32.10 numaralı bağlantı noktasına sahiptir. Sunucu, istenen sitenin "ana bilgisayar" başlığına bağlı olduğunu bilir.
Chris

3
DNS, her iki ismin de sunucunun dinlediği IP adresini göstermesini sağlayacak şekilde yapılandırılmıştır . Sunucu aynı IP ve bağlantı noktası üzerinden bağlantı alır, ancak tarayıcı "SiteA.com'u istiyorum" deyince, bunun SiteB.com için istenenden farklı bir içerik vermesi gerektiğini bilir.
Massimo

2
Daha da net olmak gerekirse: İki site, TCP / IP düzeyinde değil, HTTP protokol düzeyinde ayırt edilir. Birisi ofisinizi aradığında ve John ya da Susan ile konuşmayı istediğinde olduğu gibi: telefon numarası aynıdır, ancak birden fazla kişi kullanabilir.
Massimo

1
Çoğu web tarayıcısı ve sunucusu artık, web sitesi başına bir IP adresinin gerekliliğini ortadan kaldıran TLS Sunucu Adı Gösterimini desteklemektedir.
yerçekimi

12

Tüm modern tarayıcıların istek ile birlikte gönderdiği, "Host:" Header adlı bir şey var.

Firefox'un bu sayfa için gönderdiği gerçek istek:

Ev sahibi: superuser.com
Kullanıcı Aracısı: Mozilla / 5.0 (Windows; U; Windows NT 6.0; en-ABD; rv: 1.9.1.7) Gecko / 20091221 Firefox / 3.5.7 (.NET CLR 3.5.30729)
Kabul et: metin / html, uygulama / xhtml + xml, uygulama / xml; q = 0.9, * / *; q = 0.8
Kabul Et Dili: en-us, en; q = 0.5
Kabul-Kodlama: gzip, deflate
Kabul-Charset: ISO-8859-1, utf-8; q = 0.7, *; q = 0.7
Hayatta Tut: 300
Bağlantı: canlı tutmak

Gördüğünüz gibi

Ev sahibi: superuser.com
bit, söz konusu web sitesini tanımlar.

IIS ve Apache'de, yalnızca belirli bir IP / Ana Bilgisayar kombinasyonundan gelen istekleri kabul eden Sanal Web Sitelerini yapılandırabilirsiniz.

Özel sorununuz için, belirli bir barındırma şirketinizin konfigürasyon isteğinde bulunmanızı nasıl istediğini okumak zorunda kalacaksınız.


Bu, IP adresiniz için birden fazla DNS girişi ayarlamanız gerektiğini de belirtmelidir.
Tadeusz A. Kadłubowski

@Tadeusz: Joker DNS girişleri ayarlamak mümkündür, bu nedenle kesinlikle gerekli değildir.
John Gietzen,

6

Tek bir IP adresinde / ana bilgisayarda birden fazla etki alanı / alt etki alanı barındırma tekniğine sanal ana makineler adı verilir . Http alma isteği, web sunucusunun isteği belirli bir sanal etki alanıyla eşleştirmesine izin veren isteklerin istediği etki alanı adını içerir.

Yalnızca bir harici IP ile dahili olarak birden fazla fiziksel ana makineniz varsa, istekleri doğru makine / dahili IP adresine iletmek için ters proxy ayarlamaya bakmak istersiniz .


veya elbette farklı portlardaki diğer http sunucularını da kullanabilirsiniz.
Chopper3

Evet, aynı zamanda bir seçenek. Ancak, insanlar bir URL girerken bir bağlantı noktası belirtmek zorunda değiller, bu yüzden bu çözümü bir yönetici arayüzü gibi birkaç duruma ayırdım.
3dinfluence,

3

Web sunucunuzdaki özelliğe normalde 'sanal ana bilgisayarlar' denir. Dns girişlerini bir IP adresine (diğer cevaplarda belirtildiği gibi) işaret ettiğinde, sunucu istenen ana bilgisayarın ne olduğuna bağlı olarak farklı sitelere sunucu gönderecektir.

Başka bir kutuyu işaret ettiği sürece gider. Önce sorguyu almayı bekliyorsanız, web sunucularının çoğunda yönlendirmeleri yapılandırabilirsiniz. Eğer alt alanlardan bahsediyorsanız, yaptığınız tek şey alt alanların her birini farklı bir ip adresine yönlendirmektir.

yani host.com -> IP 1 sonra www.host.com -> IP 2 ve mail.host.com -> IP 3

Daha spesifik cevaplar istiyorsanız, hangi işletim sistemiyle çalıştığınızı hangi web sunucusu yazılımının kullandığını söylemeniz gerekir.

ServeFault'un bu soru için daha iyi bir yer olduğunu görebilirsiniz.


1

Kısacası...

Bir - Çeşitli etki alanlarınız için DNS girişlerini kutunuzu işaret edecek şekilde ayarlayın.

İki - Başkaları tarafından tanımlandığı gibi, web sunucunuzu istenen ana bilgisayar adıyla eşleşecek şekilde ayarlayın (hangisini söylemiyorsunuz).

Bu şekilde, tüm etki alanlarınız için tüm istekler aynı makineye gider ve config, istenen etki alanını alır ve o sitenin içeriğini içeren doğru klasöre yönlendirir.


0

İkinci web sitesi için ayrı bir fiziksel sunucunuz olduğu gibi sorunuzdan bana geliyor. Bu durumda, iki sunucu için tek bir IP adresi kullanamazsınız. A) ikinci ana makineniz için ikinci bir genel IP adresi alabilir veya b) istekleri ana bilgisayar başlıklarına göre iç ağınızdaki farklı sunuculara ileten akıllı bir proxy kurabilirsiniz. B) 'nin mümkün olduğuna eminim ama nasıl çalıştığı hakkında hiçbir fikrim yok, bu yüzden ne yapmaya çalıştığınızın olup olmadığını bir başkasına sormanız gerekecek.


0

Sorunuzu doğru okuyorsam, NAT (Ağ Adresi Çevirisi) üzerinden IP adresi paylaşan iki farklı bilgisayarınız var mı? Öyleyse, bir sitenin farklı bir bağlantı noktasında dinlemeniz gerekir (80 değil) - yönlendiricinin HTTP "Ana Bilgisayar" meta verilerini temel alan farklı bilgisayarlara istek göndermesini bilmenin iyi bir yolu yoktur. İkinci sunucunuz için ikinci bir IP adresi almaktan daha iyi olursunuz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.