Gunicorn Ngnx Supervisor 를 사용 하여 Django 프로젝트 배치
실험 환경:
CentOS 7 의 기본 Python 버 전이 2.7.5 이기 때문에 3.4.8 버 전 을 더 설치 해 야 합 니 다.또한 우리 가 사용 하 는 Django 버 전 은 2.0.5 이 고 Django 2.x 버 전 은 Python 3.x 버 전 만 지원 하기 때문에 우 리 는 먼저 3.x 버 전의 Python 을 설치 합 니 다.
yum install python34 python34-pip
이제 Django 를 설치 하 겠 습 니 다.
# 3.4 Python Django, pip install django, 2.7.5 Python, ,
python3.4 -m pip install django
Gunicorn 설치
python3.4 -m pip install gunicorn
Nginx 설치
yum install nginx
Supervisor 설치
yum install supervisor
Django 프로젝트 만 들 기:
# ProJectName ,AppName App
django-admin startproject ProJectName
cd ProJectName
django-admin startapp AppName
Gunicorn 테스트 를 사용 하여 Django 프로젝트 시작:
#
cd ProJectName
gunicorn ProJectName.wsgi
시작 성공 후 입력 은 대략 다음 과 같 습 니 다.
[2018-05-24 09:50:33 +0800] [22849] [INFO] Starting gunicorn 19.8.1
[2018-05-24 09:50:33 +0800] [22849] [INFO] Listening at: http://127.0.0.1:8000 (22849)
[2018-05-24 09:50:33 +0800] [22849] [INFO] Using worker: sync
[2018-05-24 09:50:33 +0800] [22852] [INFO] Booting worker with pid: 22852
상기 정 보 를 통 해 알 수 있 듯 이 프로젝트 가 시작 되 었 습 니 다.gunicron 버 전 은 19.8.1 이 고 127.0.0.1:8000 포트 를 감청 하 며 22849 번 프로 세 스 에서 작 동 합 니 다.작 동 하 는 worker 방식 은 sync 이 고 worker 프로 세 스 를 시 작 했 습 니 다.프로 세 스 번 호 는 22852 입 니 다.더 많은 워 커 관련 자 료 는 스스로 더 많은 정 보 를 찾 아 보 세 요.
위 에서 우리 가 127.0.0.1 을 감청 하면 클 라 이언 트 가 접근 할 수 없 기 때문에 우 리 는 감청 포트 를 지정 하여 시작 해 야 합 니 다.위의 직접 Ctrl+c 를 끝내 고 아래 명령 을 실행 해 야 합 니 다.
# -b
gunicorn Gogenius.wsgi -b 0.0.0.0:8000
Supervisor 설정:
Supervisor 는 프로 세 스 를 관리 하 는 도구 입 니 다.기본적으로 설 치 된 후 설정 파일/etc/supervisord.conf 가 있 습 니 다.이것 은 주 설정 파일 입 니 다.또 하나의 디 렉 터 리/etc/supervisord.d 가 있 습 니 다.이 디 렉 터 리 는 일반적으로 우리 가 관리 하 는 프로 세 스 를 저장 하 는 데 사 용 됩 니 다.프로 세 스 마다 하나의 프로필 을.ini 로 끝 냅 니 다.
Gunicorn 을 관리 하 는 프로필 만 들 기
touch /etc/supervisord.d/gunicorn.ini
gunicorn.conf 의 내용 은?
[program:gunicorn]
directory= /usr/local/ProJectName
command = /usr/bin/gunicorn ProJectName.wsgi -b 127.0.0.1:8000
user = root
autostart= true
autorestart= true
redirect_stderr = true
stdout_logfile = /var/log/gunicorn.log
설명:
다음은 슈퍼 바 이 저 를 시작 하 는 겁 니 다.
systemctl start supervisord.service
systemctl enable supervisord.service
하위 프로 세 스 의 설정 파일 을 변경 한 적 이 있다 면,이 때 저 희 는 reload 에서 Supervisor 서 비 스 를 내리 기만 하면 됩 니 다.전체 서 비 스 를 다시 시작 하지 않 아 도 됩 니 다.그러면 다른 서비스 에 영향 을 줄 수 있 습 니 다.
supervisorctl reload
Nginx 퍼 가기 설정:
우 리 는 우리 Django 자체 가 경량급 웹 서버 를 사용 할 수 있다 는 것 을 알 고 있 습 니 다.Django 에 서 는 html js img css 등 페이지 의 저장 위 치 를 정의 하고 필요 한 페이지 를 자동 으로 찾 을 수 있 습 니 다.그러나 현재 우 리 는 Django 자체 의 웹 서버 를 사용 하지 않 았 습 니 다.이 때 는 우리 Nginx 설정 대 리 를 통 해 클 라 이언 트 가 해당 하 는 페이지 에 접근 하도록 요청 해 야 합 니 다.Nginx 설정 은 다음 과 같 습 니 다.자신의 요구 에 따라
server {
listen 5000;
location / {
# proxy_pass gunicorn
proxy_pass http://127.0.0.1:8000;
proxy_next_upstream http_500 http_502 http_503 error timeout invalid_header;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
}
location ~.*\.(html|css|js|jpg|json|png|map|\ttf*|\woff2*|\woff*|eot|otf|ttf|json|cur|woff|svg|woff2|m3u8|ts|mp3)$ {
# root Django
root /usr/local/Gogenius;
proxy_next_upstream http_500 http_502 http_503 error timeout invalid_header;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
}
}
Nginx 시작
systemctl start nginx
systemctl enable nginx
이로써 우 리 는 Nginx 의 5000 포트 를 통 해 우리 의 Django 프로젝트 를 방문 할 수 있 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Django의 질문 및 답변 웹사이트환영 친구, 이것은 우리의 새로운 블로그입니다. 이 블로그에서는 , 과 같은 Question-n-Answer 웹사이트를 만들고 있습니다. 이 웹사이트는 회원가입 및 로그인이 가능합니다. 로그인 후 사용자는 사용자의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.