apache2 httpd 오류“NameVirtualHost 주소와 * 포트 및 *가 아닌 포트를 혼합하는 것은 지원되지 않습니다”를 해결하는 방법


24

Apache2를 부팅 할 때 발생하는 오류는 다음과 같습니다.

 * Starting web server apache2
 apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
 [Wed Oct 21 16:37:26 2009] [error] VirtualHost *:80 -- mixing * ports and non-* ports with a NameVirtualHost address is not supported, proceeding with undefined results
 [Wed Oct 21 16:37:26 2009] [error] VirtualHost *:80 -- mixing * ports and non-* ports with a NameVirtualHost address is not supported, proceeding with undefined results
 [Wed Oct 21 16:37:26 2009] [error] VirtualHost *:80 -- mixing * ports and non-* ports with a NameVirtualHost address is not supported, proceeding with undefined results
 [Wed Oct 21 16:37:26 2009] [error] VirtualHost *:80 -- mixing * ports and non-* ports with a NameVirtualHost address is not supported, proceeding with undefined results
 [Wed Oct 21 16:37:26 2009] [warn] NameVirtualHost *:80 has no VirtualHosts

먼저 여러 사이트를 호스팅하도록 Apache를 설정하는 방법에 대한이 안내서를 따랐습니다.

http://www.debian-administration.org/articles/412

그런 다음 ServerFault 에서 비슷한 질문 을 발견 하고 솔루션 적용을 시도했지만 도움이되지 않았습니다.

다음은 최종 VirtualHost 구성의 예입니다.

<VirtualHost *:80>
    ServerAdmin admin@xxx.com
    ServerName  www.xxx.com
    ServerAlias xxx.com

    # Indexes + Directory Root.
    DirectoryIndex index.html
    DocumentRoot /var/www/www.xxx.com

    # Logfiles
    ErrorLog  /var/www/www.xxx.com/logs/error.log
    CustomLog /var/www/www.xxx.com/logs/access.log combined
</VirtualHost>

도메인 X가 무고한 사람을 보호하기 위해 밖으로 나가는 :-)

또한 안내서에 언급 된 conf.d / virtual.conf 파일이 다음과 같이 보입니다.

NameVirtualHost *

이상하게도 세 사이트 중 두 사이트에서 모든 것이 제대로 작동하는 것 같습니다.


완전한 (!) Apache httpd 구성 또는 적어도 모든 NameVirtualHost 및 <VirtualHost ...> 행을 게시하십시오.
joschi

동일한 ip : port에서 두 유형을 혼합 할 수 없습니다. 나는 두 개의 ip를 가진 설정을 가지고 있는데, 하나는 massvhost가 매달려 있고 다른 하나는 모든 정규 이름 기반 호스트를 가지고 있습니다. 더 중요한 것은 목표가 무엇입니까? 당신은 무엇을 달성하려고합니까? 당신의 제약은 무엇입니까?
Marcin

답변:


29

로 이름이 지정된 NameVirtualHostIP 주소는 각 VirtualHost요소 의 IP 주소와 일치해야합니다 .

예:

NameVirtualHost *:80
NameVirtualHost *:81

<VirtualHost *:80>
# ...
</VirtualHost>

<VirtualHost *:81>
# ...
</VirtualHost>

# This will not work!
<VirtualHost *>
# ...
</VirtualHost>

자세한 내용은 Apache 가상 호스트 설명서 를 읽으십시오 .


두 번 이상 투표 할 수 있기를 바랍니다. 그들은 실제로 이것을 문서에서 더 명확하게 불러야합니다.
Alex W

13

이것을 교체하십시오 :

NameVirtualHost *

이것으로 :

NameVirtualHost *:80

2
간단한 답변에 감사 드리며 두 가지를 모두 받아 들일 수 있기를 바랍니다
rcampbell

5

응답에 추가 한 한 가지 주목할 점은 모든 NameVirtualHost 및 VirtualHost 지시문에서 : 80을 명시 적으로 선언하지 않으면 SSL을 실행할 수 없다는 것입니다.

NameVirtualHost *

NameVirtualHost * : 443

동일한 구성에서 혼합하면 아파치가 포트 0에서 수신 대기하면 오류가 발생합니다.

나를 위해 SSL을 적절하게 사용할 수 있도록 모든 호스트에 : 80을 추가했습니다.


0

전의:

<VirtualHost 85.25.97.252:80>
ServerName domain.com
ServerAlias ​​* .domain.com
ServerAdmin webmaster@domain.com
DocumentRoot "/var/www/domain.com/httpdocs/"<Directory
"/var/www/domain.com/ httpdocs / ">
옵션 색인 FollowSymLinks
AllowOverride 모든
주문 허용, 거부
모든
</ Directory>
</ VirtualHost>

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.