Linux의 Apache 2.4에서 이름 기반 가상 호스트를 구성하는 방법은 무엇입니까?


1

저는 리눅스와 아파치 모두를 처음 사용합니다.

아파치를 사용하여 컴퓨터에 웹 사이트를 호스팅하고 있습니다. 도메인이이라고 가정합니다 www.myweb.com. 지금은 3 개 하위 도메인을 만들고 싶어 a.myweb.com하고 b.myweb.com.

내 첫 번째 질문은 가상 호스트를 사용 하여이 작업을 수행 할 수 있다는 것입니다. 모든 가상 호스트 예제에서 다른 도메인을 사용할 수 있으므로 하위 도메인에도 적용되는지 확실하지 않습니다.

두 번째 질문은 가상 호스트가 하위 도메인에서 작동한다는 것입니다. 내 httpd.conf파일에서의 값은 DocumentRoot입니다 /srv/http. 아래에서 /srv/http, 나는 3 개 폴더를 생성 default, ab. 그리고 여기 내 것이 있습니다 httpd-vhosts.conf:

<VirtualHost myIP:80>
    ServerAdmin a@b.c 
    DocumentRoot "/srv/http/default/public"
    ServerName www.myweb.com
    ServerAlias myweb.com
    ErrorLog "/srv/http/default/logs/error.log"
    CustomLog "/srv/http/default/logs/access.log" combined
    <Directory />
        Options FollowSymLinks Indexes
        Require all granted
    </Directory> 
</VirtualHost>


<VirtualHost myIP:80>
    ServerAdmin a@b.c 
    DocumentRoot "/srv/http/a/public"
    ServerName a.myweb.com
    ErrorLog "/srv/http/a/logs/error.log"
    CustomLog  "/srv/http/a/logs/access.log" combined
</VirtualHost>


<VirtualHost myIP:80>
    ServerAdmin a@b.c 
    DocumentRoot "/srv/http/b/public"
    ServerName b.myweb.com
    ErrorLog "/srv/http/b/logs/error.log"
    CustomLog  "/srv/http/b/logs/access.log" combined   
    <Directory />
        Options FollowSymLinks Indexes
        Require all granted
    </Directory> 
</VirtualHost>

내가 입력 할 때 지금 문제는, www.myweb.com, myweb.com, a.myweb.com또는 b.myweb.com브라우저에서, 나는 항상로 이동하고있어 DocumentRoot/srv/http. 그래서 내가 잘못했거나 하위 도메인이 이런 식으로 작동하지 않습니까? 고마워


예, httpd.conf하위 도메인에 가상 호스트 섹션을 사용할 수 있습니다 . 나는 그렇게한다. 게시물에 표시 한 내용과 일치하도록 apachectl restart편집 한 후을 사용 httpd.conf하여 Apache를 다시 시작 했습니까 ?
moonpoint

모든 가상 호스트 설정은 httpd-vhosts.conf에 있습니다. 대신 httpd.conf에 넣어야합니까? 구성 파일을 변경할 때마다 아파치를 다시 시작합니다.
xoroth

아니, 당신은 사용할 수 있어야합니다 httpd-vhosts.conf당신이있는 경우 Include conf/extra/httpd-vhosts.confhttpd.conf그것을 주석 줄의 시작 부분에 아니오 "#"기호.
moonpoint

답변:


1

<VirtualHost myIP:80>가상 호스트 섹션 시작 부분에서 사용 하는 것으로 나타났습니다 . 내가 사용하는 <VirtualHost *:80>내 이름 기반 가상 호스트의 모든 - 참조 설치하는 방법 (예제) 아파치 가상 호스트 설정 IP 기반 가상 호스트 대 이름 기반 virutal 호스트 서버를 구성 사이의 차이를. 서버에 여러 개의 IP 주소가 있고 사이트가 다른 IP 주소로 응답하기를 원한다면 IP 주소를 넣을 것이라고 생각하지만 IP 주소를 사용하여 모든 사이트에 액세스 해야하는 경우 서버가 수신 대기하는 가상 호스트 섹션의 IP 주소 대신 "*"를 사용하여 차이가 있는지 확인하십시오. 그렇지 않으면 구성이 내 것과 비슷해 보입니다. 시도해 볼 수도 있습니다httpd -S 이 기사에서 제안한 VirtualHost 구성 구문을 검사하여 해당 검사로 Apache 보고서가 누락 된 것으로 보이는지 확인하십시오.


0

Apache Documentation에 필요한 'Directory'지시문에 전체 경로를 사용해야합니다 . 구성을 사용하면 실제로 각 호스트 이름에서 httpd.conf에 구성된 'DocumentRoot'경로에 대한 액세스를 구성합니다.

기본 웹 사이트 (www)의 '디렉토리'구성 섹션은 다음과 같습니다.

<Directory /srv/http/default/public>
    Options FollowSymLinks Indexes
    Require all granted
</Directory>

또한 디렉토리 "/"에 대한 기본 액세스는 모든 액세스를 허용하는 것이므로 Apache httpd는 URL에서 매핑 된 모든 파일을 제공합니다. 따라서 문서에서 제안한대로 httpd.conf에서 더 제한적인 것으로 변경하고 싶을 수 있습니다.

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