Apache 2.4에는 다음 항목을 사용하여 세 개의 가상 호스트가 설정되어 있습니다.
<VirtualHost *:443>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
ServerName www.xx.de
</VirtualHost>
<VirtualHost *:443>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/sh/
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
ServerName sh.xx.de
</VirtualHost>
<VirtualHost *:443>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/nc/
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
ServerName n.xx.de
</VirtualHost>
인터넷과 로컬 네트워크를 통해 접속할 수 있습니다. 하지만 로컬 네트워크에 있는 경우 외부 IP가 아닌 로컬 IP로 쿼리를 리디렉션하고 싶습니다. DNS는 아파치와 동일한 장치에 있습니다. xx.de
로컬 IP를 확인하기 위해 dnsmasq를 사용해 보았습니다 192.168.0.55
. xx.de/sh/
예를 들어 . 하지만 sh.xx.de
작동하지 않습니다.
답변1
DNS는 IP 주소를 URL이 아닌 호스트 이름에만 매핑합니다(그 반대도 마찬가지).
URL은 3개의 * 부분으로 구성됩니다. 살펴보겠습니다.http://example.com/foo:
- http:와 같은 체계
- 호스트(예: example.com)
- /foo와 같은 경로
따라서 컴퓨터의 브라우저에서 요청하면http://example.com/fooDNS는 example.com을 IP 주소로 변환합니다. 그러면 컴퓨터는 해당 IP 주소를 사용하여 기본 구성표 포트(http의 경우 80)를 통해 원격 컴퓨터에 연결합니다.
연결되면 HTTP 요청(예: GET /foo)을 수행하고 요청의 일부로 HTTP를 포함합니다.주인머리글. 이 헤더는 브라우저가 DNS에서 찾아야 하는 호스트 이름을 HTTP 서버에 알려줍니다. 그러면 HTTP 서버가 요청을 올바른 위치에 매핑할 수 있습니다.가상 호스트.
IP 주소가 192.168.0.55인 컴퓨터에 3개의 가상 호스트를 설정해야 하는 것 같습니다.
- a.xx.com용 하나
- b.xx.com 사본
- 실제 /aaaa 및 /bbbb 디렉터리를 호스팅하는 기본 가상 호스트(원래 IP 주소 192.168.0.55 재정의)
처음 두 개는 세 번째 경로가 호스팅하는 올바른 경로로 리디렉션되어야 합니다.
* 더 많은 섹션(예: 사용자/비밀번호, 포트, 쿼리)이 있을 수 있지만 이 예에서는 이것으로 충분합니다.