>운영 및 유지보수 >Apache >여러 웹 사이트를 위해 Apache에서 가상 호스트를 만드는 방법은 무엇입니까?

여러 웹 사이트를 위해 Apache에서 가상 호스트를 만드는 방법은 무엇입니까?

Robert Michael Kim
Robert Michael Kim원래의
2025-03-11 17:21:16548검색

이 기사는 여러 웹 사이트에 대한 Apache 가상 호스트 구성을 안내합니다. & lt; virtualhost & gt; 디렉토리 권한과 같은 보안 고려 사항과 함께 ServerName, Serveralias 및 DocumentRoot를 지정하는 블록

여러 웹 사이트를 위해 Apache에서 가상 호스트를 만드는 방법은 무엇입니까?

여러 웹 사이트의 Apache에서 가상 호스트를 만드는 방법

Apache에서 가상 호스트를 만들면 단일 서버에서 여러 웹 사이트를 호스팅 할 수 있습니다. 이는 들어오는 요청의 도메인 이름 또는 IP 주소를 기반으로 다르게 응답하도록 Apache를 구성하여 달성됩니다. 단계별 가이드는 다음과 같습니다.

  1. Apache 구성 파일 편집 : 이 파일의 위치는 운영 체제 및 Apache 설치에 따라 다릅니다. 일반적인 위치에는 /etc/apache2/apache2.conf (debian/ubuntu), /etc/httpd/conf/httpd.conf (Red Hat/Centos) 또는 /etc/httpd/conf/extra/httpd-vhosts.conf 가 포함됩니다 (종종 가상 호스트 구성에 선호). 루트 권한이있는 텍스트 편집기 (Linux의 sudo nano )를 사용하십시오.
  2. 가상 호스트 정의 : 구성 파일 내에 각 웹 사이트에 <virtualhost></virtualhost> 블록을 추가합니다. 각 블록은 특정 가상 호스트의 설정을 정의합니다. 기본 예는 다음과 같습니다.
 <code class="apache"><virtualhost> ServerName example.com ServerAlias www.example.com DocumentRoot /var/www/example.com <directory> AllowOverride All Require all granted </directory> </virtualhost></code>
  • ServerName :이 가상 호스트의 기본 도메인 이름입니다.
  • ServerAlias :이 가상 호스트를 가리키는 대체 도메인 이름.
  • DocumentRoot : 웹 사이트 파일이 포함 된 디렉토리. 이 디렉토리가 존재하는지 확인하십시오.
  • <directory></directory> : DocumentRoot 디렉토리에 대한 권한을 지정합니다. AllowOverride All .htaccess 파일은 일부 설정을 무시할 수 있도록 허용 Require all granted 모두에 대한 액세스가 필요합니다. 생산 환경에서 AllowOverride All 데주의하십시오.
  1. ServerName 웹 사이트에 대해 DocumentRoot 하십시오. 호스팅하려는 ServerAlias 웹 사이트에 대해 별도의 <virtualhost></virtualhost> 블록을 만듭니다.
  2. 가상 호스트 활성화 : 구성을 추가 한 후이를 활성화해야합니다. 이 프로세스는 시스템에 따라 다릅니다. Debian/Ubuntu에서는 a2ensite example.com ( example.com 사이트 이름으로 바꾸는)과 sudo systemctl reload apache2 사용할 수 있습니다. Red Hat/Centos에서는 sudo systemctl restart httpd 사용하여 apache를 다시 시작해야 할 수도 있습니다.
  3. DNS 구성 : 결정적으로 DNS 레코드를 구성하여 도메인 이름을 서버의 IP 주소에 가리키기 위해 구성해야합니다.

Apache에서 여러 가상 호스트를 설정할 때 보안 고려 사항은 무엇입니까?

단일 서버에서 여러 웹 사이트를 호스팅 할 때 보안이 가장 중요합니다. 주요 고려 사항은 다음과 같습니다.

  • 디렉토리 권한 : 각 가상 호스트의 문서 루트 디렉토리에 대한 액세스를 제한합니다. 무단 액세스 또는 수정을 방지하기 위해 적절한 파일 권한 (예 : 디렉토리의 경우 chmod 755 및 파일의 경우 chmod 644 )을 사용하십시오. 777 과 같은 지나치게 허용되는 설정을 피하십시오.
  • .htaccess 파일 : 편리하지만 .htaccess 파일은 신중하게 관리하지 않으면 보안 취약점을 소개 할 수 있습니다. 가능하면 사용하지 말고 사용해야하는 경우 AllowOverride 통해 허용되는 지침을주의 깊게 검토하고 제한하십시오.
  • 정기적 인 보안 업데이트 : Apache Server 및 모든 관련 소프트웨어 (PHP, MySQL 등)를 최신 보안 패치로 업데이트하십시오. 스택의 어느 부분에서나 취약점이 전체 서버를 손상시킬 수 있습니다.
  • 방화벽 : 방화벽을 사용하여 필요한 포트에 대한 액세스를 제한하십시오 (일반적으로 HTTP의 경우 80 포트, HTTP의 경우 443). 불필요한 들어오는 연결을 차단하십시오.
  • SSL/TLS 인증서 : 모든 웹 사이트의 HTTPS를 사용하여 서버와 클라이언트 간의 통신을 암호화합니다. Let 's Encrypt와 같은 평판이 좋은 인증서 기관 (CA)에서 SSL/TLS 인증서를 얻으십시오.
  • 정기적 인 보안 감사 : 잠재적 인 취약점을 식별하고 해결하기 위해 정기적 인 보안 감사를 수행합니다.

Apache의 각 가상 호스트에 대해 다른 포트와 도메인을 구성하려면 어떻게해야합니까?

<virtualhost></virtualhost> 지시 내에서 각 가상 호스트에 대해 다른 포트와 도메인을 쉽게 구성 할 수 있습니다.

다른 포트를 사용하려면 VirtualHost 선언에서 * 후에 지정하십시오. 예를 들어, 가상 호스트에는 포트 8080을 사용합니다.

 <code class="apache"><virtualhost> ServerName example.com:8080 # ... other directives ... </virtualhost></code>

클라이언트는 example.com:8080 사용 하여이 웹 사이트에 액세스해야합니다. 비표준 포트를 사용하는 것은 일반적으로 https가 널리 퍼져 있기 때문에 일반적으로 덜 일반적입니다. 그러나 테스트 또는 특정 응용 프로그램에 유용 할 수 있습니다.

다른 도메인을 사용하려면 첫 번째 섹션에 표시된대로 ServerNameServerAlias 지시문에이를 지정하십시오. Apache는 들어오는 요청의 호스트 헤더와 일치하여 사용할 가상 호스트를 결정합니다. 이것은 표준적이고 선호되는 방법입니다.

각 웹 사이트마다 다른 PHP 버전을 가진 Apache 가상 호스트를 사용할 수 있습니까?

예, 각 웹 사이트마다 다른 PHP 버전의 Apache 가상 호스트를 사용할 수 있습니다. 여기에는 일반적으로 여러 PHP 설치를 사용하고 APACHE를 구성하여 각 가상 호스트에 적합한 PHP 핸들러를 사용합니다.

정확한 방법은 시스템과 PHP 설치 방법에 따라 다릅니다. 일반적인 접근법은 다음과 같습니다.

  • 다중 PHP 설치 : 여러 버전의 PHP (예 : PHP 7.4 및 PHP 8.1)를 설치하십시오. 그런 다음 각 가상 호스트에 대해 다른 PHP 핸들러 (예 : mod_php 또는 php-fpm )를 사용하도록 APACHE를 구성하여 올바른 PHP 실행 파일로의 경로를 지정합니다.
  • PHP-FPM : PHP-FPM (FASTCGI 프로세스 관리자)은 종종 여러 PHP 버전을 관리하는 데 선호됩니다. 각 PHP 버전에 대해 별도의 PHP-FPM 풀을 구성한 다음 Apache에게 각 가상 호스트에 맞는 풀을 사용하도록 지시합니다. 이를 위해서는 풀을 만들려면 PHP-FPM 자체를 구성해야합니다.
  • suexec (보안 증가) : suexec 사용하면 각 가상 호스트의 PHP 스크립트를 다른 사용자 계정으로 실행하여 보안을 향상시킵니다. 이것은 하나의 타협 된 웹 사이트가 다른 웹 사이트에 영향을 미치는 것을 방지합니다.

이러한 설정을 구성하려면 서버의 환경 및 PHP 구성에 대한 세부 사항과 친숙성에주의를 기울여야합니다. 자세한 지침은 시스템 문서 및 PHP-FPM 문서를 참조하십시오. 일반적으로 기본 가상 호스트 설정보다 더 복잡합니다.

위 내용은 여러 웹 사이트를 위해 Apache에서 가상 호스트를 만드는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.