2011-04-13 10 views
2

mod_wsgi 및 Apache에서 작업하는 Django 사이트가 있습니다. (예 : example.com) 하위 도메인을 만들었고 (예 : info.example.com) 기존 프로젝트의 app을 가리키고 싶습니다. 가능 한가요, 하나의 urls.py 파일과 example.com/info와 info.example.com이 Django 프로젝트의 같은 뷰를 가리킬 수 있습니까? (다른 프로젝트의 전체 프로젝트를 복제하지 않고)?Django에서 특정 URL을 가리키는 하위 도메인

만약 그렇다면 어떻게해야합니까? 현재 기존 프로젝트에 대한 example.com virtalhost 설정은 다음과 같습니다

<VirtualHost 12.34.56.78:80> 
    ServerName example.com 
    ServerAlias www.example.com 

    DocumentRoot /srv/www/Example/Pub_html 

    WSGIScriptAlias//srv/www/Example/example.wsgi 
    <Directory /srv/www/Example/Example> 
     Order allow,deny 
     Allow from all 
    </Directory> 

    Alias /robots.txt /srv/www/Example/robots.txt 
    Alias /favicon.ico /srv/www/Example/favicon.ico 
    .... 
</VirtualHost> 

사전에 감사!

업데이트 : : 데이터베이스 테이블과 템플릿 폴더를 기존 Django 프로젝트와 공유하는 빠른 Django 프로젝트를 만들었습니다. 작동하지만 실제로는 건조하지는 않습니다.

+0

내부적으로 info.example.com을 example.com/info로 변환하는 RewriteRule을 추가하려고합니다. 그래도 그 글을 쓰는 것은 아주 어렵습니다. –

답변

1

리버스 프록시로이 작업을 수행합니다.

<VirtualHost 12.34.56.78:80> 
    ServerName info.example.com 

    ProxyPass  /http://example.com/info 

    SetOutputFilter proxy-html 
    <Location /> 
     ProxyPassReverse /info/ 
     ProxyHTMLURLMap /info//
    </Location> 
    ProxyHTMLURLMap http://example.com/info/
</VirtualHost> 

세부 꽤 괜찮되지 않을 수도 있습니다, 그래서 당신이 일을 얻을 수없는 경우 알려 주시기 : 당신이 mod_proxy 가능한 mod_proxy_html이있는 경우, 이런 식으로 뭔가를하려고합니다.

+0

ProxyPass 라인으로 작업하고 있습니다. 전체 파일과 함께 Chrome 크롬에 330 오류가 발생했고 [오류] 프록시가있었습니다. ap_get_scoreboard_lb (1)이 worker 프록시에 대해 자식 14565에 실패했습니다. reverse; [오류] 프록시 : worker http://example.com/info에 대해 자식 14565에서 ap_get_scoreboard_lb (0)이 실패했습니다. – skazhy

관련 문제