2010-05-12 12 views
12

나는 mod_wsgi를 사용하여 단일 도메인에서 실행하고자하는 두 개의 별개의 장고 "프로젝트"를 가지고 있습니다. mod_python을 사용하면 특정 URL 경로가 장고 프로젝트 하나에 매핑되고 다른 경로는 다른 프로젝트에 매핑되는 서버 수준에서이 작업을 수행 할 수있는 방법이 있다고 생각합니다.여러 django 프로젝트, mod_wsgi, 단일 도메인

mod_wsgi로이 작업을 수행 할 수 있습니까? 그렇다면 어떻게해야합니까?

내가 생각했던 것 : 아파치 가상 호스트 설명에 들어가는 것, application.wsgi 파일에 들어가는 것 등. 그러나 정확하게 어떻게해야하는지 알지 못했습니다.

감사합니다.

답변

8

이것은 복잡하지 않습니다. WSGIScriptAlias 지시문을 설정하기 만하면됩니다. 각 경로에 하나씩 두 개가 필요하며 각각은 프로젝트 설정이 포함 된 별도의 .wsgi 파일을 가리 킵니다.

+0

고마워요! 이것은 효과가있다! 너무 간단해서 왜 내가 그걸 생각하지 않았는지 모르겠다. – DavidG

+0

답으로 표시하는 것은 앞으로이 문제를 이해하는 데 도움이되었을 것이다. – grantk

7

나는 또한 아파치와 함께 일하고 있으며 하나의 도메인으로 여러 장고 프로젝트를 운영 중이다. 내가 데비안을 사용하고 있기 때문에

  1. 가 내가 호스팅하고 각 도메인에 대해 하나 개의 가상 호스트 파일이 가상 호스트 파일

    을 수정해야 할 당신이 가진 두 가지가 있습니다. vhost 파일에는 여러 개의 vhost 섹션이 있어야합니다. 각 프로젝트마다 하나씩. 이 섹션들 안에서 WSGIScriptAlias를 정의 할 수 있습니다.

    <VirtualHost *:80> 
        ... 
    WSGIScriptAlias//path/to/project1.wsgi 
    ... 
    </VirtualHost> 
    
    <VirtualHost *:80> 
        ... 
        WSGIScriptAlias//path/to/project2.wsgi 
        ... 
    </VirtualHost> 
    

    물론 다른 모든 필요한 정보를 추가해야합니다. 프로젝트 1과 2에는 확실히 다른 하위 도메인이 있습니다. 예 : project1.yourdomain.comproject2.yourdomain.com.

  2. 당신 * .wsgi 파일 쓰기

    많은 작성하는 방법 및 저장 * .wsgi 파일이 있습니다. 나는 모범 사례를 모른다. 제 경우에는 프로젝트 폴더에 저장합니다. 좀 더 "마법"다른 * .wsgi 많은 파일을 본 적이

    import os 
    import sys 
    os.environ['DJANGO_SETTINGS_MODULE'] = 'settings' 
    sys.path.append('/path/to/your/project') 
    import django.core.handlers.wsgi 
    application = django.core.handlers.wsgi.WSGIHandler() 
    

    :

    은 예입니다. 그러나 이것은 당신을 시작해야합니다. 인터넷을 통해 많은 예제를 찾을 수 있습니다.

귀하의 질문에 대한 답변입니다. 더 많은 질문을 두려워하지 마십시오.

+0

감사합니다, Jens -하지만 별도의 하위 도메인을 원하지 않습니다 (가능한 경우). 여러 프로젝트에 대해 하나의 도메인을 원하지만 서버 수준의 적절한 프로젝트에 URL을 매핑해야합니다. – DavidG

+0

그래서 * www.yourdomain.com/project1/* 및 * www.yourdomain.com/project2/*를 원하십니까? – Jens

+0

네, 꽤 많이. (사실, 나는 project1이 www.yourdomain.com이되고 project2는 www.yourdoamin.com/project2가되고 싶다.) – DavidG

관련 문제