Apache 이름 기반 가상 호스트가 구성되었지만 두 호스트 이름 모두 동일한 사이트를 가리킵니다.

Apache 이름 기반 가상 호스트가 구성되었지만 두 호스트 이름 모두 동일한 사이트를 가리킵니다.

내 Raspberry Pi(raspbian)에서 완벽하게 실행되는 apache2 웹 서버가 있고 최근에 다른 웹 사이트를 만들고 싶었습니다. 이를 위해 이름 기반 가상 호스팅을 사용해 보았습니다. 다음에서 또 다른 동적 DNS 호스트 이름을 얻었습니다.https://my.noip.com/#!/dynamic-dns. 나는 2개의 사이트 conf 파일과 호스트 파일을 올바르게 구성했다고 생각합니다.

나의 두 웹사이트는 ashwingupta.ddns.net과 javacloudcompile.ddns.net입니다(이것은 나의 이전 웹사이트입니다). 그러나 이들 중 하나에 연결하면 이제 ashwingupta.ddns.net 사이트를 얻게 됩니다. 다음은 구성 파일입니다.

주인

127.0.0.1   localhost
::1     localhost ip6-localhost ip6-loopback
ff02::1     ip6-allnodes
ff02::2     ip6-allrouters

127.0.1.1   raspberrypi
127.0.1.1       javacloudcompile.ddns.net
127.0.0.1       ashwingupta.ddns.net

javacloudcompile.ddns.net.conf

NameVirtualHost *:80
<VirtualHost *:8080>
    ServerName javacloudcompile.ddns.net
    ServerAdmin ashiwingupta@localhost
    DocumentRoot /var/www/html/vhosts/javacloudcompile.ddns.net/
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

ashwingupta.ddns.net.conf

NameVirtualHost *:8080
<VirtualHost *:8080>
    ServerName ashwingupta.ddns.net
    ServerAdmin ashiwingupta@localhost
    DocumentRoot /var/www/html/vhosts/ashwingupta.ddns.net/
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

두 사이트를 활성화했는데 a2ensite두 사이트 모두 올바르게 활성화되었다고 주장합니다. 그런 다음 service apache2 restart.

(참고로 모든 작업은 의도적으로 8080에서 수행되며 내 ISP는 80에서 인바운드를 차단합니다.)

Listen 8080편집: 내 ports.conf에 언급하는 것을 잊어버렸습니다.

답변1

내 생각에는 NOIP 서비스가 프레임을 사용하여 서버를 호출하고 있으며 프레임 소스는 도메인 이름이 아닌 서버의 IP 주소인 것 같습니다.

<frame src="http://68.101.98.197:8080" name="redir_frame" frameborder=0>

Apache 서버가 요청에 포함된 서버 이름을 받지 못했습니다. conf 파일은 알파벳 순서로 로드되므로 ashwingupta.ddns.net.conf가 가장 높은 우선순위를 가지며 기본 또는 기본 서버로 간주됩니다(참조:https://httpd.apache.org/docs/2.2/vhosts/examples.html).

이 문제를 해결하는 한 가지 방법은 NOIP 구성에서 해당 포트 번호를 지정할 수 있다고 가정하고 ashwingupta.ddns.net에 포트 8081과 같은 다른 포트를 사용하는 것입니다.

관련 정보