Django+Uwsgi+Nginx 생산 환경 배치 실현

3252 단어 DjangoUwsgiNginx
소개
uWSGI 는 웹 서버 로 WSGI 프로 토 콜,uwsgi,http 등 프로 토 콜 을 실현 했다.Nginx 에서 HttpUwsgiModule 의 역할 은 uWSGI 서버 와 교환 하 는 것 이다.
WSGI/uwsgi/uwsgi 라 는 세 가지 개념의 구분 에 주의해 야 한다.
WSGI 는 웹 서버 게 이 트 웨 이 인터페이스 이다.이것 은 웹 서버(예 를 들 어 nginx,uWSGI 등 서버)와 웹 응용 프로그램(예 를 들 어 Flask 프레임 워 크 로 쓴 프로그램)이 통신 하 는 규범 이다.
uwsgi 는 통신 프로 토 콜 이 아 닌 회선 프로 토 콜 로 uwsgi 서버 에서 다른 네트워크 서버 와 의 데이터 통신 에 자주 사용 된다.
uWSGI 는 uwsgi 와 WSGI 두 가지 협 의 를 실현 한 웹 서버 다.
uwsgi 프로 토 콜 은 uwsgi 서버 자체 의 프로 토 콜 로 정 보 를 전송 하 는 유형(type of information)을 정의 하 는 데 사 용 됩 니 다.모든 uwsgi packet 전 4byte 는 전송 정보 유형 에 대한 설명 으로 WSGI 에 비해 두 가지 입 니 다.
설치

pip install uwsgi
윈도 우즈 지원 하지 않 음
테스트 시작
테스트 파일 을 만 들 고 쓰기:

def application(environ, start_response): 
status = '200 OK' 
output = 'Hello World! powerde by wsgi' 
response_headers = [('Content-type', 'text/plain'),
('Content-Length', str(len(output)))] 
start_response(status, response_headers)
return [output.encode('utf8'),]
명령 실행:

uwsgi --http :8080 --file test.py
브 라 우 저가 이 포트 에 접근 하면 정상 적 인 상황 에서 출력 을 얻 을 수 있 습 니 다.
django

uwsgi --http :8080 --file django_project/wsgi.py
페이지 에 접근 할 수 있 지만 정적 파일 을 불 러 올 수 없습니다.필요 합 니 다.

uwsgi --http :8080 --file django_project/wsgi.py --static-map=/static=static
정적 파일 을 불 러 올 수 있 습 니 다.
매개 변수 설명:
  • http 이것 은 runserver 와 같이 IP 포트 를 지정 합 니 다
  • file 이 파일 에는 반사 가 있 습 니 다.그 를 호출 할 때 웹 서버 를 지정 하지 않 으 면 기본 값
  • 을 사용 합 니 다.
  • static 에서 맵 을 만 들 고 정적 파일
  • 을 지정 합 니 다.
    uwsgi 프로필 시작 django 프로젝트
    uwsgi 가 지원 하 는 인자 가 많 습 니 다.설정 파일 에 쓸 수 있 습 니 다.프로젝트 동급 디 렉 터 리 에 uwsgi.ini 파일 만 들 기:
    
    # uwsig        
    [uwsgi]
    #     
    chdir=/opt/webvirtcloud/
    #      application
    module=webvirtcloud.wsgi:application
    #   sock      
    socket=/tmp/uwsgi.sock
    #      
    workers=5
    pidfile=/tmp/uwsgi.pid
    #   IP   
    http=0.0.0.0:8080 #    ngxin  ,     
    #       
    static-map=/static=/opt/webvirtcloud/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=/var/log/uwsgi.log
    
    더 많은 매개 변 수 를 볼 수 있 습 니 다:https://uwsgi-docs.readthedocs.io/en/latest/Options.html
    실행 명령:uwsgi--ini uwsgi.ini,명령 은 셸 터미널 을 사용 하지 않 습 니 다.셸 연결 을 끊 어도 페이지 에 접근 할 수 있 습 니 다.
    어떻게 닫 거나 다시 시작 해 야 합 니까?
    
    uwsgi --stop /tmp/uwsgi.pid
    설정 nginx
    Nginx 프로필 을 찾 으 면 가상 도 메 인 이름 으로 가상 도 메 인 이름 에 쓰 십시오.
    
    server {
    listen 80;
    server_name localhost;
    
    location / { 
    include uwsgi_params;
    uwsgi_pass 127.0.0.1:8080; //   uwsgi socket     
    client_max_body_size 35m;
    }
    }
    
    이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

    좋은 웹페이지 즐겨찾기