
여러 웹사이트와 서비스에 대해 다음과 같은 디렉터리 구조가 있습니다.
/var/www/html/site1
/var/www/html/site2
/var/www/html/site3
/var/www/html/serv1
/var/www/html/serv2
site1
폴더는 웹사이트를 호스팅합니다. 웹앱 서비스 와 폴더를 다음과 같이 표시 site1domain.com
하고 싶습니다.serv1
serv2
service1.site1domain.com
service2.site1domain.com
site1domain.conf
그래서 이런 식으로 파일 에 가상 호스트를 구성하려고했습니다.
<VirtualHost *:80>
ServerName site1domain.com
ServerAlias www.site1domain.com
DocumentRoot /var/www/html/site1
<Directory /var/www/html/site1>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerName service1.site1domain.com
ProxyPreserveHost On
ProxyRequest Off
ProxyPass "/" "localhost/serv1"
ProxyPassReverse "/" "localhost/serv1"
</VirtualHost>
<VirtualHost *:80>
ServerName service2.site1domain.com
ProxyPreserveHost On
ProxyRequest Off
ProxyPass "/" "localhost/serv2"
ProxyPassReverse "/" "localhost/serv2"
</VirtualHost>
그러나 서비스와 관련된 가상 호스트 코드 블록으로 인해 서버 충돌이 발생합니다. 오류 코드 1로 종료됩니다.
누군가가 올바르게 구성하는 방법을 이해하도록 도와줄 수 있습니까?
답변1
그냥 어떻습니까:
<VirtualHost *:80>
ServerName service1.site1domain.com
DocumentRoot /var/www/html/serv1
</VirtualHost>
<VirtualHost *:80>
ServerName service2.site1domain.com
DocumentRoot /var/www/html/serv2
</VirtualHost>
mod_proxy가 필요하지 않습니다.
답변2
오류는 귀하의 원인으로 인해 발생했습니다.ProxyPass
그리고ProxyPassReverse
지시문에는계획URL의 일부입니다. 올바른 구문은 다음과 같습니다.
ProxyPass "/" "http://localhost/serv1"
ProxyPassReverse "/" "http://localhost/serv1"
그러나 Andrew의 말은 맞습니다.역방향 프록시이 사용 사례에는 필요하지 않으며 최고의 기술도 아닙니다.