내 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과 같은 다른 포트를 사용하는 것입니다.