
Apache2의 가상 호스트 구성에 작은 문제가 있습니다.
컨텍스트: Apache2가 설치된 Raspberry Pi가 있습니다. 내 테스트 디렉터리인 "/var/www/html/test"에 액세스하고 싶습니다.
그래서 아래와 같이 "/etc/apache2/sites-available"에서 000-default.conf를 수정했고 이것이 작동했습니다.
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
NameVirtualHost 192.168.1.29:80
<VirtualHost 192.168.1.29:80>
ServerName raspyvan
DocumentRoot /var/www/html/test
</VirtualHost>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
(raspyvan은 내 라우터 및 호스트 파일의 서버 이름입니다)
하지만 IP 주소 "192.168.1.29"에 대한 액세스를 거부하겠습니다.
그래서 000-default.conf 파일을 다음과 같이 두 번째로 수정했습니다.
Listen 192.168.1.29:80
ServerName DefaultServer
DocumentRoot /var/www/html
NameVirtualHost 192.168.1.29:80
<VirtualHost 192.168.1.29:80>
ServerName 192.168.1.29
<Directory />
Deny from all
</Directory>
</VirtualHost>
<VirtualHost 192.168.1.29:80>
ServerName raspyvan
DocumentRoot /var/www/test
</VirtualHost>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
이제 문제는 IP와 호스트 이름에 의해 액세스가 거부되는데 그 이유를 모르겠습니다.
편집: 내 이름 서버는 DNS 라우터 구성 및 호스트 아파치 파일에 적용됩니다.
답변1
Apache가 가상 호스트와 일치할 수 없으면 항상 처음 만나는 가상 호스트를 사용합니다(이것이 역사적으로 sni가 등장할 때까지 SSL 인증서당 하나의 IP가 필요했던 이유입니다).
각 가상 호스트에 대한 로그를 추가하십시오.
ErrorLog ${APACHE_LOG_DIR}/error-default.log
CustomLog ${APACHE_LOG_DIR}/access-default.log combined
그리고
ErrorLog ${APACHE_LOG_DIR}/error-raspyvan.log
CustomLog ${APACHE_LOG_DIR}/access-raspyvan.log combined
요청된 호스트 이름을 보려면 "access-default.log" 로그 파일을 확인하세요.