여러 도메인 이름을 등록했습니다. 서버에 배포된 Apache에서 실행되는 여러 PHP 프로젝트를 여러 도메인 이름으로 별도로 바인딩할 수 있나요? 묶는 방법
여러 도메인 이름을 등록했습니다. 서버에 배포된 Apache에서 실행되는 여러 PHP 프로젝트를 여러 도메인 이름으로 별도로 바인딩할 수 있나요? 묶는 방법
그렇습니다. 그냥 가상호스트를 사용하세요.
먼저 A 레코드를 사용하여 모든 도메인 이름을 서버의 IP로 확인
http-vhost.conf 구성 편집
<code><VirtualHost *:80> DocumentRoot "D:/UPUPW_AP5.5/vhosts/hospital.com/web" ServerName hospital.com:80 ServerAlias ServerAdmin webmaster@hospital.com DirectoryIndex index.html index.htm index.php default.php app.php u.php ErrorLog logs/hospital.com-error.log CustomLog logs/hospital.com-access_%Y%m%d.log comonvhost <Directory "D:/UPUPW_AP5.5/vhosts/hospital.com/web"> Options FollowSymLinks AllowOverride All Require all granted </Directory> <LocationMatch "/(inc)/(.*)$"> Require all denied </LocationMatch> <LocationMatch "/(attachment|attachments|uploadfiles|avatar)/(.*).(php|php5|phps|asp|asp.net|jsp)$"> Require all denied </LocationMatch> </VirtualHost> //D:/UPUPW_AP5.5/vhosts/hospital.com/web WEB目录 //ServerName hospital.com:80 绑定的域名</code>
apache
의 VirtualHost
을 구성하고 내 프로젝트를 예로 들어보겠습니다.
서버의 httpd.conf
을 찾은 후 다음을 구성합니다.
<code class="html"><VirtualHost *:80> ServerName admin.example.com ProxyPass / http://localhost:8080/ ProxyPassReverse / http://localhost:8080/ ErrorLog logs/admin.example.com-error_log CustomLog logs/admin.example.com-access_log common </VirtualHost> <VirtualHost *:80> ServerName www.demo.com ProxyPass / http://localhost:8081/ ProxyPassReverse / http://localhost:8081/ ErrorLog logs/demo.com-error_log CustomLog logs/demo.com-access_log common </VirtualHost></code>
위 구성은 apache
이 기본 포트인 포트 80을 수신하도록 한 다음 사용자가 admin.example.com
에 액세스하면 8080
포트의 애플리케이션에 요청을 배포합니다. 사용자가 www.demo.com
에 액세스하면 요청이 8081
포트로 배포됩니다. 물론 프로그램 수만큼 VirtualHost
을 구성해야 합니다. 그래도 이해가 되지 않는다면 apache端口转发
를 검색해 보세요. 많은 튜토리얼이 있습니다.