Apache名前ベースの仮想ホストが構成されていますが、両方のホスト名は同じサイトを指します。

Apache名前ベースの仮想ホストが構成されていますが、両方のホスト名は同じサイトを指します。

私はRaspberry Pi(raspbian)で完全に動作するapache2 Webサーバーを持っていて、最近別のWebサイトを作成したかったです。そのために、名前ベースの仮想ホスティングを試してみました。以下から別の動的DNSホスト名を取得しました。https://my.noip.com/#!/dynamic-dns。私は2つのサイトconfファイルとホストファイルを正しく設定したと思います。

私の2つのウェブサイトは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)。

この問題を解決する 1 つの方法は、NOIP 構成で対応するポート番号を指定できると仮定し、ashwingupta.ddns.net にポート 8081 などの他のポートを使用することです。

関連情報