동일한 서버의 특정 포트로 리디렉션하려는 하위 도메인이 있습니다. 내가 가지고 있다고
dev.mydomain.com
내가 원하는 dev.mydomain.com
투명로 리디렉션 mydomain.com:8080
나는 원래 하위 도메인 이름을 브라우저의 URL을 보존하려는.
Apache 2.2에서이 작업을 어떻게 수행합니까? 기본 포트에서 Apache 2.2를 실행하고 80
있습니다. 이 작업을 수행하기 위해 쓰기 구성을 파악할 수 없습니다.
이미 dev.mydomain.com
DNS에서를 해결하도록 설정했습니다 mydomain.com
.
이것은 라우팅 할 수없는 IP 주소를 가진 인트라넷 개발 서버를위한 것이므로 공개적으로 직면하는 서버를 손상시키는 악용 및 보안에 대해서는 걱정하지 않습니다.
답변
해결책
Miles Erickson이 올바른 방향으로 설정 한 후 마침내 생각해 냈습니다. 주소 표시 줄에 리디렉션 된 서버와 포트가 아닌 요청의 원래 하위 도메인 / 도메인을 반영하기를 원했지만 그는 나를 사용하여 솔루션을 제공하는 올바른 경로를 VirtualHost
찾았으며 마침내의 사용을 포함하는 솔루션을 찾았습니다 mod_proxy
.
<VirtualHost *:80>
ServerAdmin me@mydomain.com
ServerName dev.mydomain.com
ProxyPreserveHost On
# setup the proxy
<Proxy *>
Order allow,deny
Allow from all
</Proxy>
ProxyPass / http://localhost:8888/
ProxyPassReverse / http://localhost:8888/
</VirtualHost>
답변
dev.mydomain.com을 mydomain.com의 IP로 확인할 수 있다고 가정하면 httpd.conf에 다음을 추가 할 수 있습니다.
NameVirtualHost *:80
<VirtualHost *:80>
ServerName dev.mydomain.com
redirect / http://mydomain.com:8080/
</VirtualHost>
관련 아파치 문서 :
관련 질문 :
호스트 이름을 기반으로하는 Apache 리디렉션
(참고 :이 답변의 원래 버전은 @ChrisS가 지적했듯이 URL의 도메인 부분을 구문 분석 할 수없는 RedirectMatch의 사용을 잘못 제안했습니다.)
답변
터미널에서 다음 줄을 실행하십시오 (도메인 및 하위 도메인 이름을 올바르게 지정하십시오)
sudo nano /etc/apache2/sites-available/subdomain.example.com.conf
다음 코드를 붙여 넣고 요구 사항으로 변경하십시오.
<VirtualHost *:80>
ServerAdmin admin@example.com
ServerName subdomain.example.com
ServerAlias subdomain.example.com
ProxyRequests Off
#ProxyPass / http://localhost:8080/
<Location />
ProxyPreserveHost On
ProxyPass http://example.com:8080/
ProxyPassReverse http://example.com:8080/
</Location>
# Uncomment the line below if your site uses SSL.
#SSLProxyEngine On
</VirtualHost>
터미널에서 다음 행을 실행하십시오 (도메인 및 서브 도메인 이름을 올바르게 지정하십시오)
sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2ensite subdomain.example.com.conf
sudo service apache2 restart
답변
기본 vhost 구성에 다음 줄을 추가하십시오.
ProxyPreserveHost On
ProxyPass / http://example.com:8080/
ProxyPassReverse / http://example:8080/
여기에는 Apache에서 mod_proxy가 필요합니다.
답변
당신은 mod_rewrite를 찾고 있습니다. 다음 은 기본 및 고급 구성에 대한 많은 예를 포함 하는 Apache 설명서에 대한 링크입니다 .
설명서를 직접 해석 할 수없는 경우 httpd.conf에 추가하십시오.
RewriteEngine on
RewriteCond %{HTTP_HOST} ^dev\.example\.com$ [NC]
RewriteRule ^(.*)$ http://example.com:8080$1 [R=301]
그리고 이것이 분명한 예가 아니라면, 여기 mod_rewrite 초보자 가이드 링크 도 있습니다.