인터넷에 있지만 하나의 웹 이름이 많은 하나의 IP 주소가있는 경우 어떻게해야합니까? 예를 들어, 호스팅 회사에 공유 IP가 있지만 해당 도메인의 다른 모든 사람과 함께 무제한 도메인 이름을 얻는 경우.
인터넷에 상자가 있지만 다른 www를 입력 할 때 다른 웹 사이트를 보유하고있는 다른 컴퓨터를 가리키고 싶습니다 … (다른 상자에 바로 옆에 앉아 있습니다). 모든 하위 도메인입니까? 고맙습니다.
나는 호스팅 회사입니다
답변
HTTP 1.1 프로토콜의 일부입니다.
특히 HTTP 1.1 프로토콜에는 클라이언트가 액세스하려고하는 특정 서버의 웹 사이트를 지정하는 “host :”라는 헤더가 포함되어 있습니다.
따라서 snoopy.net과 woodstock.org가 모두 192.0.32.10을 공유하고 브라우저가 http://snoopy.net/doghouse
특정 http 요청 에서 콘텐츠를 가져 오려고 하면 다음과 같습니다.
GET /doghouse HTTP/1.1
Host: snoopy.net
원하는 URL이 http://woodstock.org/seeds
요청이면
GET /seeds HTTP/1.1
Host: woodstock.org
두 경우 모두 컴퓨터와 서버의 포트 80 사이에 tcp 소켓이 있습니다. 서버는 호스트 헤더에 따라 /var/www/snoopy.net 또는 /var/www/woodstock.org/에서 컨텐츠를 가져 오는 것을 알고 있습니다.
쿠키에 대한 다른 헤더와 브라우저 유형 및 허용되는 컨텐츠와 같은 다른 것들이 있지만 “호스트”헤더는 구체적으로 웹 서버가 원하는 가상 웹 사이트를 알 수있게하는 것입니다.
RFC2616에 더 있습니다 .
이것이 바로 https 사이트에 자체 IP 주소가 있어야하는 이유이기도합니다. http 트랜잭션 전에 SSL 키 교환 및 인증서 확인이 수행되므로 http 서버는 “woodstock에 대한 인증서를 제공하는 것을 알 수 없습니다. 192.0.32.10 포트 443에서 https 연결을 수신 할 때 org “또는”snoopy.net “
편집하다
** 의견에 Grawity는 서버가있는 웹 사이트에 액세스를 시도하는 등 사용자 알고 허용 TLS 사양에서 SSL의 확장이 있음을 지적하고, 그래서 대부분의 최신 웹 브라우저는, 이러한 확장이 필수가 조금 너무 강한.
답변
모든 최신 브라우저가 “호스트 :”헤더라고하는 요청과 함께 전송하는 것이 있습니다.
이 페이지에 대한 Firefox의 실제 요청은 다음과 같습니다.
호스트 : superuser.com 사용자 에이전트 : Mozilla / 5.0 (Windows; U; Windows NT 6.0; en-US; rv : 1.9.1.7) Gecko / 20091221 Firefox / 3.5.7 (.NET CLR 3.5.30729) 수락 : text / html, application / xhtml + xml, application / xml; q = 0.9, * / *; q = 0.8 수락 언어 : en-us, en; q = 0.5 수락 인코딩 : gzip, 수축 수락 문자 집합 : ISO-8859-1, utf-8; q = 0.7, *; q = 0.7 연결 유지 : 300 연결 : 연결 유지
보시다시피
호스트 : superuser.com
비트는 해당 웹 사이트를 식별합니다.
IIS 및 Apache에서는 특정 IP / 호스트 조합의 요청 만 수락하는 가상 웹 사이트를 구성 할 수 있습니다.
특정 문제에 관해서는 특정 호스팅 회사가 구성을 요청하는 방법을 읽어야합니다.
답변
단일 IP 주소 / 호스트에서 둘 이상의 도메인 / 하위 도메인을 호스팅하는 기술을 가상 호스트 라고 합니다 . http get 요청에는 웹 서버가 요청을 특정 가상 도메인과 일치시킬 수있는 요청의 도메인 이름이 포함됩니다.
하나의 외부 IP로 내부에 여러 개의 물리적 호스트가있는 경우 요청을 올바른 시스템 / 내부 IP 주소로 전달하도록 리버스 프록시 를 설정하는 것이 좋습니다.
답변
웹 서버의 기능을 일반적으로 ‘가상 호스트’라고합니다. dns 항목이 해당 IP 주소 (다른 답변에서 언급 한 것처럼)를 가리 키도록 요청하면 서버는 요청 된 호스트가 무엇인지에 따라 다른 사이트를 서버합니다.
다른 상자를 가리키는 한. 쿼리를 먼저 받으려면 대부분의 웹 서버에서 리디렉션을 구성 할 수 있습니다. 하위 도메인에 대해 이야기하는 경우 각 하위 도메인을 다른 IP 주소로 지정하기 만하면됩니다.
즉, host.com-> IP 1, www.host.com-> IP 2 및 mail.host.com-> IP 3
보다 구체적인 답변을 원하면 실행중인 운영 체제에 어떤 웹 서버 소프트웨어가 있는지 말해야합니다.
ServeFault가이 질문에 더 적합한 곳이라는 것을 알 수 있습니다.
답변
한마디로 …
하나-다양한 도메인의 DNS 항목이 모두 상자를 가리 키도록 설정합니다.
2-다른 사람들이 설명했듯이 요청한 호스트 이름과 일치하도록 웹 서버를 설정하십시오 (하나는 말하지 않음).
이렇게하면 모든 도메인에 대한 모든 요청이 동일한 시스템으로 이동하고 구성에서 요청 된 도메인을 가져 와서 해당 사이트의 컨텐츠를 포함하는 올바른 폴더로 라우팅합니다.
답변
두 번째 웹 사이트에 대한 별도의 물리적 서버가있는 것처럼 귀하의 질문에서 나에게 들립니다. 이 경우 두 서버에 단일 IP 주소를 사용할 수 없습니다. a) 두 번째 호스트의 두 번째 공용 IP 주소를 얻거나 b) 호스트 헤더를 기반으로 내부 네트워크의 다른 서버로 요청을 전달하는 스마트 프록시를 설정할 수 있습니다. 나는 b)가 가능하다는 것을 확신하지만 그것이 어떻게 작동하는지 전혀 모른다. 그래서 다른 사람에게 당신이하려는 일인지 물어봐야한다.
답변
질문을 올바르게 읽고 있다면 NAT (Network Address Translation)를 통해 IP 주소를 공유하는 두 대의 다른 컴퓨터가 있습니까? 그렇다면 하나의 사이트에서 다른 포트 (80이 아님)를 수신해야합니다. 라우터가 HTTP “호스트”메타 데이터를 기반으로 다른 컴퓨터에 요청을 보내도록하는 방법은 없습니다. 두 번째 서버의 두 번째 IP 주소를 얻는 것이 좋습니다.