도메인 이름이 웹 서버에만 액세스할 수 있도록 apache2를 사용하십시오.

도메인 이름이 웹 서버에만 액세스할 수 있도록 apache2를 사용하십시오.

example.com도메인 이름 과 고정 IP 주소를 사용하는 VPS가 있습니다 123.123.123.123.
웹사이트 콘텐츠에 액세스하기 위해 브라우저가 도메인 이름을 제공하기를 원합니다.

사실 나는 브라우저의 URL 표시줄에 내 사이트 exemple.com를 표시한 경우에만 사람들이 내 사이트를 볼 수 있기를 원합니다.123.123.123.123

그래서 내 /var/www/디렉터리 내에 두 개의 하위 디렉터리를 만들었습니다.
/var/www/default(DN을 제공하지 않은 사람이 볼 수 있는 내용) 및
/var/www/exemple실제 웹사이트 콘텐츠. 파일을 이렇게 편집했습니다
./etc/apache2/sites-enabled/000-default.conf

<VirtualHost *:80>
    DocumentRoot /var/www/default
</VirtualHost>

<VirtualHost *:80>
    ServerName example.com
    ServerAlias example.com

    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/exemple

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

제 생각에는 이것이 효과가 있을 것 같습니다. 실제로 브라우저의 URL 표시줄에 와 를 /var/www/default넣으면 서버가 나에게 콘텐츠를 제공합니다. 왜?123.123.123.123exemple.com

답변1

Apache는 트래픽을 다음으로 전달합니다.첫 번째VirtualHost구성에 표시된 것과 일치합니다. 정의된 첫 번째 항목에는 가 없거나 정의되어 있지 않기 때문에 ServerName바인딩 ServerAlias된 호스트 이름이나 바인딩된 IP 주소에 대해 포트 80의 모든 트래픽을 캡처하도록 구성됩니다.

답변2

example.com 전용 VirtualHost의 이름을 잊어버렸습니다. 내 수정 사항(및 몇 가지 추가 제안 사항)은 다음과 같습니다.

<VirtualHost *:80>
    DocumentRoot /var/www/default
</VirtualHost>

<VirtualHost 123.123.123.123:80>                              # <= Should fix your issue
    ServerName example.com
    ServerAlias www.example.com                               # <= Suggested modification

    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/exemple

    ErrorLog ${APACHE_LOG_DIR}/error-example.log              # <= Suggested modification
    CustomLog ${APACHE_LOG_DIR}/access-example.log combined   # <= Suggested modification
</VirtualHost>

물론 Apache를 다시 로드하는 것을 잊지 마십시오.

관련 정보