이름 기반 가상 호스트에서 하위 도메인을 만드는 방법은 무엇입니까?


27

이름 기반 호스팅이 있습니다 my.address.com. 내 친구는 '일반'주소를 가지고 있으며 address.comSSH를 통해 액세스 할 수있는 가상 머신을 제공했습니다.

그는 또한 포트 마법을 만들어 지금은 아파치를 설치 한 후, 나는 액세스 할 수 있습니다 /var/www통해 my.address.com.

그래서 문제는 어떻게 하위 도메인을 만들 수 test.my.address.com있습니까?

Apache의 Listen Directive 에는 약간의 마법이 있어야 하지만 알아낼 수는 없습니다. 또한 Apache로 로컬 사용 가능 사이트를 만드는 방법을 알고 있지만 동일하지는 않습니다.


필요하지 않습니다 Listen. Apaches 가상 호스트를 살펴보십시오 : httpd.apache.org/docs/2.2/vhosts
Der Hochstapler

주요 질문은 남아 있습니다-ServerName 지시문에 무엇을 쓸까요?
scythargon

답변:


33

하위 도메인을 만들려면 몇 가지 사항을 확인해야합니다.

DNS

따라서 다른 사람이에 도달 test.my.address.com하려면 먼저 해당 이름을 가상 머신의 IP 주소로 확인할 수 있어야합니다. 어떻게 할 수 있습니까?

가장 친한 친구 는 영역에서 VM의 IP 주소 를 가리키는 A 레코드 를 만드는 것 입니다.address.commy

여태까지는 그런대로 잘됐다. 그러나 어떻 test.my습니까? 아직 항목이 없을 수 있습니다.

친구는 단순히 *.my영역에 추가 하고 동일한 IP 주소를 가리킬 수 있습니다. 그런 다음 모든 요청이 something.my.address.comVM으로 전송됩니다. 큰!

아파치 가상 호스트

VM에 도달하면 Apache는 요청을 처리하는 방법을 알아야합니다. 여기서는 Apache HTTP 서버 의 가상 호스트 기능을 사용 합니다.

나는 보통 데비안에서 실행하기 때문에에 예제 구성으로 이것을 설명 할 것이다 /etc/apache2/sites-available. 거기에 파일을 불러서 test.my.address.com정보로 채우자.

<VirtualHost *:80>
        ServerName test.my.address.com
        ServerAdmin webmaster@my.address.com

        DocumentRoot /var/www/test.my.address.com/
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/test.my.address.com/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/test.my.address.com.error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog ${APACHE_LOG_DIR}/test.my.address.com.access.log combined
</VirtualHost>

이 파일 의 주요 설정ServerName지시문 입니다. 이것은 아파치에게이 서버 를 사용할 수 있는 이름을 알려줍니다 . ServerAlias ​​지시문으로 추가 이름을 지정할 수 있습니다 .

데비안을 사용하는 경우 sudo a2ensite test.my.address.com파일을 만든 후 잊지 마십시오 sudo invoke-rc.d apache2 restart.


고마워요! :) 나는 내 역할을하고 친구에게 자신의 역할에 대해 이메일을 썼습니다. 다시 감사합니다 :)
scythargon

@ 스키 타곤 : 나의 기쁨. 우리는 여기에 있습니다 :)
Der Hochstapler

내 친구가 내 대답을하지 않은 동안, 제발, 제발? 작동 방식에 대해 생각한 것 : http-request for test.my.address.com로 이동 my.address.com한 다음 VM의 Apache 서버에서 처리합니다. 그러나 address.com의 DNS 서버 test.my는이 모든 것에 대해 알아야 하고에 대한 지식과 무관하게 my이유를 알고 있어야한다고 말했습니다 .
scythargon

@ scythargon : HTTP 요청이 서버에 도달하려면 모든 클라이언트가 먼저 요청을 보내야하는 서버를 파악해야합니다. 따라서 호스트 이름이 유효해야합니다. 그렇지 않으면 "이름이 없습니다"라는 메시지가 나타납니다.
Der Hochstapler
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.