2016-08-17 3 views
-1

그래서 다른 부서의 Badgr 서버에서 작업했습니다. Python 2.7과 django를 사용하여 빌드했습니다. Django는 dev 웹 사이트에서만 사용됩니다.Django 제작 버전?

나는이 프로젝트를 가져 와서 프로덕션 환경을위한 무언가로 실행되도록 변환하려고합니다. 하지만 어떻게 진행해야할지 모르겠습니다. 죄송합니다. 이것이 정말로 멍청한 질문이라면, 저는 dev 시스템 관리자가 아닙니다.

(ENV) [루트 @의 badgr 코드] # 개의 ./manage.py의 경우 runserver & 수행 시스템 점검 ...

시스템 검사가 더 문제 (침묵 0)를 확인합니다. 08 월 20 일 - 16:31:48 장고 버전 1.7.1, 'mainsite.settings'설정 사용 개발 서버 시작 ##### // 127.0.0.1:8000/ CONTROL- 기음.

하지만 #####에 갈 때 나는 그것을 연결할 수없는 것 // MYSERVER : 8000,

은 내가 tcpdump에 그것을 볼 수 있기 때문에 내 PC에서 트래픽이 서버를 타격 알고 TCP 8000에. 나는 runserver가 외부 소스로부터의 트래픽을 차단한다는 것을 들었다.

일부 사람들과 이야기 한 후에 나는 Apache 또는 Gunicorn으로 전환 할 것을 권장합니다.

장고 설명서에서 보낸 몇 가지 지침은 다음과 같습니다. https://docs.djangoproject.com/en/1.7/howto/deployment/wsgi/ 나는 내가해야 할 일의 머리 나 꼬리를 실제로 만들 수는 없지만. 모든 입력을 부탁드립니다. 감사합니다.

+2

"내가 들었던 것에서 장고는 개발자 웹 사이트에서만 사용됩니다." 물론 사실은 아닙니다 : 많은 주요 웹 사이트가 장고를 운영합니다. "Django runserver는 dev 웹 사이트에서만 사용됩니다." – TimB

+0

이 질문에서 이해할 수있는 것부터 Django App을 정상적으로 실행했지만 웹 서버를 설치하거나 실행하지 않는 것 같습니까? 아파치를 사용하지 않는다면 어떤 종류의 웹 서버를 사용하고 있습니까? 여기에 약간의 혼란이있을 수 있습니다 - 장고는 웹 서버가 아니며 포트 80을 통해 장고 앱을 제공하기 위해 서버에 웹 서버를 설치해야합니다. 포트에 연결하지 않는 이유는 8000을 치려고 할 때 runserver 콘솔에 접속하는 것을 추가 할 수 있습니까? 그리고 아마 tcpdump도 있습니다. – ays0110

+0

또한 0.0.0.0:8000에서 runserver를 시도해 볼 수 있습니까? – ays0110

답변

0

프로덕션 서버에서 Django 프로젝트를 실행하려면 gunicorn과 Nginx를 사용하는 것이 좋습니다. 둘 다 공식 문서 및 요리법 용으로 Google에 쉽게 접근 할 수 있으며 코드가 느려지지 않는 한 그 조합은 가장 빠릅니다. (Nginx + uWSGI는 또 다른 좋은 옵션이지만, 초보자에게는 조금 어려움).

Gunicorn은 pip install unicorn으로 설치하거나 Django를 설치 한 것과 같은 방식으로 설치할 수 있으며 간단한 gunicorn yourproject.wsgi으로 시작할 수 있습니다 (자세한 구성 옵션은 docs를 참조하십시오).

Nginx (배포판의 패키지 관리자를 사용하여 설치)는 역방향 프록시 모드로 구성되어야하며 정적/미디어 루트 (정적/미디어 루트에서 정적/미디어 파일을 제공해야 함) (manage.py collectstatic은 정적 파일을 최신 상태로 유지해야 함) 날짜). 기본 원리를 이해하고 위해 예를 제외하고이 사용 설명서를 참조하여 /etc/nginx/sites-enabled/yoursite.conf :

server { 
    listen 80 default; 
    server_name example.com; 
    root /path/to/project/root/static; 

    location /media { 
     alias /path/to/project/root/media; 
    } 

    location /static { 
     alias /path/to/project/root/static; 
    } 

    location /favicon.ico { 
     alias /path/to/project/root/static/favicon.ico; 
    } 

    location/{ 
     proxy_pass http://localhost:8000; 
     include  proxy_params; 
    } 
} 

는 SSL 또는 WWW/비 www가 리디렉션 (모두 높게 설정하는 것이 좋습니다) 필요한 경우에 더가있다 그러나이 예를 들어 시작하기에 충분해야합니다.

gunicorn을 자동으로 실행하려면 관리자 또는 시스템 시스템을 사용할 수 있습니다 (systemd 또는 다른 것).

참고 : 여기서는 모두 Linux를 사용한다고 가정합니다. 어쨌든 프로덕션 서버에서는 다른 것을 사용하지 않아야합니다.

이 모든 것을 처리하는 방법을 이해할 수 없다고 생각되면 전문가의 도움을 받아보십시오. 합리적인 요금으로 도와 줄 많은 프리랜서 시스템 관리자가 있습니다.

+0

답변 해 주셔서 감사합니다. 제공된 정보를 사용하게 될 것입니다. – Sesshoumaru

0

우선, 1.7.1이 아니라 장고의 "장기 지원"버전을 사용하고 있어야합니다. 현재 LTS 릴리스는 1.8.14입니다. 자세한 내용은 https://www.djangoproject.com/download/을 참조하십시오.

당신이 제공 한 Django 문서 링크는 귀하가 이해해야 할 부분의 일부일뿐입니다. 시작하기에 더 좋은 장소는 실제로 해당 페이지의 첫 번째 링크 인 https://docs.djangoproject.com/en/1.8/howto/deployment/wsgi/modwsgi/입니다.

+0

감사합니다. 귀하의 링크를 통해이를 조사 할 것입니다. – Sesshoumaru