Django+Uwsgi+Nginx 의 생산 환경 배치 에 대한 자세 한 설명

5637 단어 DjangoUwsgiNginx
runserver 를 사용 하면 django 프로젝트 를 로 컬 에서 편리 하 게 실행 할 수 있 습 니 다.그러나 이것 은 랜 에서 만 접근 할 수 있 습 니 다.생산 환경 에 django 를 배치 하면 문 제 를 더 고려 해 야 합 니 다.예 를 들 어 정적 파일 처리,안전,효율 등 이 있다.이 글 은 uwsgi+Nginx 에서 django 프로젝트 생산 환경 을 바탕 으로 하 는 배 치 를 요약 했다.
준비 조건:
1.runserver 로 정상적으로 시작 할 수 있 는 django 프로젝트 가 있 는 지 확인 합 니 다.
2.프로젝트 가 linux 에 업로드 됨
3.Liux 에 python 환경 이 배치 되 어 있 고 프로젝트 에 필요 한 모듈 이 설치 되 어 있 습 니 다.
설치
uwsgi 는 python 의 모듈 입 니 다.uwsgi 를 설치 하려 면 간단 한 pip 명령 만 있 으 면 됩 니 다.

pip3 install uwsgi
uwsgi+django 기반 실현
1.명령 으로 uwsgi 시작
STEP 1:django 프로젝트 진입

두 번 째 단계:명령 테스트 시작

uwsgi --http 192.168.31.123:8080 --file teacher/wsgi.py --static-map=/static=static

매개 변수 설명:
--http 이것 은 runserver 와 같이 IP 포트 를 지정 한다
--file 이 파일 에 반사 되 어 있 습 니 다.그 를 호출 할 때 웹 서버 를 지정 하지 않 으 면 기본 값 을 사용 합 니 다.
--static 에서 맵 을 만들어 정적 파일 을 지정
이때http://192.168.2.108:8080/그림 에서 보 듯 이 프로젝트 가 성공 적 으로 시작 되 었 음 을 나타 낸다.

2.uwsgi 프로필 로 django 프로젝트 시작
첫 번 째 단계:django 프로젝트 동급 디 렉 터 리 에 script 디 렉 터 리 를 만 들 고 설정 스 크 립 트 를 저장 하 는 데 사용 합 니 다.

두 번 째 단계:/script 디 렉 터 리 에 들 어가 uwsgi.ini 파일 을 만 듭 니 다.
uwsgi.ini 파일 을 편집 하 는 내용 은 다음 과 같 습 니 다.

# uwsig        

[uwsgi]

#     

chdir=/opt/proj/teacher/

#      application

module=teacher.wsgi:application

#   sock         

socket=/opt/proj/script/uwsgi.sock

#         

workers=5

pidfile=/opt/proj/script/uwsgi.pid

#   IP      

http=192.168.2.108:8080

#       

static-map=/static=/opt/proj/teacher/static

#   uwsgi        

uid=root

gid=root

#      

master=true

#     unix Socket pid          

vacuum=true

#         ,      

thunder-lock=true

#     

enable-threads=true

#        

harakiri=30

#     

post-buffering=4096

#       

daemonize=/opt/proj/script/uwsgi.log
시작 항목:

192.168.2.108:8080 방문,시작 성공

이로써 uwsgi+django 는 완벽 하 게 결합 되 었 습 니 다.그러나 uwsgi 만 으로 는 부족 합 니 다.uwsgi 는 동적 요청 을 처리 하 는 능력 이 높 지만 정적 요청(예 를 들 어 static 파일,css,js 파일 등)에 대한 처리 능력 이 떨 어 집 니 다.이때 nginx 와 결합 하여 사용 해 야 합 니 다.
설치 nginx
STEP 1:yum 원본 설정

vim /etc/yum.repos.d/nginx.repo
파일 내용 은 다음 과 같 습 니 다.wq 저장 종료

STEP 2:nginx 설치

yum -y install nginx
설치 완료 여부,명령 시작 nginx

/etc/init.d/nginx start

브 라 우 저 를 열 고 192.168.2.108 에 다음 페이지 가 나타 나 면 nginx 설치 가 완료 되 고 정상적으로 시작 할 수 있 습 니 다.

STEP 3:장고+Uwsgi+Nginx
먼저 설정 파일 을 만 듭 니 다.nginx 의 기본 설정 디 렉 터 리 는/etc/nginx/conf.d 입 니 다.

teacher.conf 파일 만 들 기

설정 내용 은 다음 과 같 습 니 다.

server { #   server       
listen 80; #         
server_name 192.168.2.108 ; #          url   
access_log /var/log/nginx/access.log main; # Nginx    
charset utf-8; # Nginx  
gzip_types text/plain application/x-javascript text/css text/javascript application/x-httpd-php application/json text/json image/jpeg image/gif image/png application/octet-stream; #        

error_page 404 /404.html; #     
error_page 500 502 503 504 /50x.html; #     

#       uwsgi
 location / { #   location    Django url(r'^admin/', admin.site.urls),
 include uwsgi_params; #     Nginx       uWSGI     
uwsgi_connect_timeout 30; #     uWSGI    
uwsgi_pass unix:/opt/proj/script/uwsgi.sock; #   uwsgi sock               
}

#         
location /static/ {
 alias /opt/proj/teacher/static/;
 index index.html index.htm;
 }

}
마지막 단계,nginx 다시 시작

/etc/init.d/nginx restart

브 라 우 저 방문 192.168.2.108,다음 페이지 가 나타 나 면 시작 성공 을 표시 합 니 다.

nginx 관련 명령

#   Nginx  Nginx  

  /etc/init.d/nginx start

  /etc/init.d/nginx stop

 

  #       configtest,Nginx        ,       ,                       

  /etc/init.d/nginx configtest

 

  #          Nginx    ,     stop start    restart   reload   

  #        

  /etc/init.d/nginx reload 
이로써 Django+Uwsgi+Nginx 의 생산 환경 배치 가 완료 되 었 습 니 다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기