
내 문제에 대한 설명을 직접 보려면 다음을 참조하세요.문제부분.
문맥:
XUbuntu 14.10 및 Apache 2.4.10을 실행합니다.
저는 Apache를 처음 접했기 때문에 간단한 VH를 설정하려고 합니다. 어느 정도 성공했지만 여전히 문제가 있습니다. 문서를 읽었지만 내 구성에 어떤 문제가 있는지 찾을 수 없습니다. 두 개의 가상 호스트를 구성하고 싶습니다.myname.com그리고펭귄닷컴.
구성
다음은 현재 구성에 대한 간단한 설명(완전하지는 않음)입니다.
/etc/apache2/apache2.conf
<Directory />
Options FollowSymLinks
AllowOverride None
Require all denied
</Directory>
<Directory /usr/share>
AllowOverride None
Require all granted
</Directory>
<Directory /var/www/>
Options +Indexes
Options FollowSymLinks
AllowOverride None
Require all granted
</Directory>
<Directory /var/www/html/flashlight/>
AllowOverride All
</Directory>
<FilesMatch "^\.ht">
Require all denied
</FilesMatch>
# Include generic snippets of statements
IncludeOptional conf-enabled/*.conf
# Include the virtual host configurations:
IncludeOptional sites-enabled/*.conf
/etc/apache2/sites-enabled/000-default.conf
<VirtualHost *:80>
ServerName www.example.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
<Directory /var/www/>
AuthName "Mon domaine"
AuthType Basic
AuthUserFile /etc/apache2/users.passwd
Options +Indexes
Options FollowSymLinks
AllowOverride None
Require valid-user
</Directory>
</VirtualHost>
/etc/apache2/sites-enabled/myname.conf
<VirtualHost 127.0.0.2:80>
ServerName myname.com
ServerAlias www.myname.com
DocumentRoot /var/www/html/myname
<Directory /var/www/html/myname>
Options +Indexes +FollowSymLinks +MultiViews
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
/etc/apache2/sites-enabled/penguin.conf
<VirtualHost 127.0.0.3:80>
ServerName penguin.com
ServerAlias www.penguin.com
DocumentRoot /var/www/html/penguin
<Directory /var/www/html/penguin>
Options +Indexes +FollowSymLinks +MultiViews
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
을 사용하여 Apache 문서에 설명된 대로 두 가상 호스트가 모두 활성화되었습니다 a2ensite
. Apache가 /etc/init.d/apache2 graceful
. 그리고 가상 호스트에 있는지 확인하기 위해 간단한 파일을 /var/www/html/penguin
만들었 /var/www/html/myname
습니다 .index.html
/etc/hosts
마지막으로 다음을 포함하도록 변경했습니다 .
127.0.0.1 localhost
127.0.0.2 myname.com
127.0.0.3 penguin.com
구성을 확인하기 위해 다음을 실행 apachectl -S
하면 볼 수 있습니다.
VirtualHost configuration:
127.0.0.3:80 penguin.com (/etc/apache2/sites-enabled/penguin.conf:1)
127.0.0.2:80 myname.com (/etc/apache2/sites-enabled/myname.conf:1)
*:80 www.example.com (/etc/apache2/sites-enabled/000-default.conf:1)
문제
이제 두 개의 가상 호스트가 구성되었으므로 해당 호스트에 액세스하려고 합니다. penguin.com
내 브라우저(Firefox)에서 액세스하려고 하면 /var/www/html/index.html
대신 가 표시됩니다 /var/www/html/penguin/index.html
. penguin.com/index.html
올바른 색인 페이지를 보려면 명시적으로 작성해야 합니다 .
그런데 접속하면 myname.com
올바른 인덱스가 제공됩니다!?
게다가 크롬으로 해당 사이트에 접속하면 이런 문제가 발생하지 않고 바로 올바른 색인 페이지가 보입니다.
내 Apache 구성에 문제가 있습니까? 아니면 Firefox에만 관련되어 있다고 생각하시나요(아마도 /etc/hosts
제대로 읽히지 않을 수도 있습니다)?
편집하다
IP(127.0.0.2/3)를 통해 페이지에 액세스할 때 Firefox에서도 동일한 문제가 발생한다는 사실을 언급하는 것을 잊어버렸습니다(127.0.0.2만 작동).
을 사용하면 wget
예상대로 파일을 얻을 수 있습니다. 그래서 나는 그것이 Apache 구성이 아닌 브라우저와 관련이 있을 수 있다고 생각합니다.
편집2
문제를 "해결"하기 위해 /etc/hosts의 루프백 주소를 로컬 IP 주소로 바꿨습니다. 또한 <VirtualHost *:80>
두 파일 모두에서 VirtualHost 선언을 대체했습니다. 지금은 잘 작동합니다!
그래도 전체 루프백 IP 주소가 주어졌을 때 Firefox가 올바른 색인을 얻을 수 없는 이유가 여전히 궁금합니다.
글이 길어져서 죄송합니다!
감사합니다
답변1
이 경우 Firefox는 /etc/hosts를 이름 확인을 위한 마지막 옵션으로 확인합니다.
이 해결 방법을 시도해 볼 수 있습니다.
- Firefox를 열고
about:config
URL을 입력하세요. - 검색
keyword.enabled
하여 False로 설정하세요. hosts
/etc/nsswitch.conf에서 첫 번째 옵션이 있는 항목을 확인하십시오files
.