제3 회 - nginx 아래 프로젝트 배치

4290 단어
창설 시간: 20161223
본 장 소목 표
  • nginx 설치
  • 기 존 hi 배치weui 프로젝트
  • uwsgi 방식 으로 배치
  • 슈퍼 바 이 저 관리 응용 프로 세 스 사용
  • 자주 사용 하 는 조작 명령 정리
  • 자주 사용 하 는 설정 정리
  • 참조 링크
  • nginx 와 uWSGI 를 바탕 으로 Ubuntu 에 Django 를 배치 하고 상세 하 게 설명 합 니 다
  • 자 강 학당, 슈퍼 바 이 저 용법 참고
  • 초보 튜 토리 얼
  • 1 nginx, uwsgi, 감독자 등 설치
    위 링크 참조
    2 uwsgi 시작 프로필 편집
    재 hiweui 프로젝트 디 렉 터 리 에 파일 만 들 기
    $ pwd
    /home/bit/coding_app/hi_weui
    
    $ cat hi_weui_uwsgi.ini 
    [uwsgi]
    # the base directory (full path)
    chdir=/home/bit/coding_app/hi_weui
    
    # Django's wsgi file
    module=hi_weui.wsgi
    
    # the virtualenv (full path)
    home=/home/bit/.virtualenvs/realkpi
    
    master=true
    processes = 8
    threads = 4
    vacuum = true
    chmod-socket = 666
    
    socket = /home/bit/coding_app/hi_weui/hi_weui.sock
    
    

    3 슈퍼 visor 설정 파일 을 편집 하여 hiweui 프로젝트 디 렉 터 리 아래
    $ pwd
    /home/bit/coding_app/hi_weui
    (sudo) echo_supervisord_conf > ./supervisord.conf
    $ tail supervisord.conf    #         hi_weui    
    ;files = relative/directory/*.ini
    
    [program:hi_weui]
    command=/home/bit/.virtualenvs/realkpi/bin/uwsgi --ini /home/bit/coding_app/hi_weui/hi_weui_uwsgi.ini
    directory=/home/bit/coding_app/hi_weui
    startsecs=0
    stopwaitsecs=0
    autostart=true
    autorestart=true
    
    

    4 nginx 서비스 프로필 편집
    nginx 디 렉 터 리 에 만 들 기
    $ pwd
    /etc/nginx/sites-available
    $ cat hi_weui_nginx.conf
    upstream django{
        #server localhost:8001;
        server unix:///home/bit/coding_app/hi_weui/hi_weui.sock;
    }
    server {
        listen      8087;
        server_name localhost;
        charset     utf-8;
     
        client_max_body_size 75M;
     
        location /media  {
            alias /home/bit/coding_app/hi_weui/media;
        }
     
        location /static {
            alias /home/bit/coding_app/hi_weui/collected_static;
        }
     
        location / {
            uwsgi_pass  django;
            include     /etc/nginx/uwsgi_params;
        }
    
    }
    

    5 nginx 대 hi 활성화서비스
    사실 링크 를 만 들 었 어 요.
    $ sudo ln -s /etc/nginx/sites-available/hi_weui_nginx.conf /etc/nginx/sites-enabled/hi_weui_nginx.conf 
    $ ls -l ../sites-enabled/
    total 0
    lrwxrwxrwx 1 root root 34 Dec 26 16:22 default -> /etc/nginx/sites-available/default
    lrwxrwxrwx 1 root root 45 Dec 27 11:23 hi_weui_nginx.conf -> /etc/nginx/sites-available/hi_weui_nginx.conf
    

    6. 방문 흐름 총화
    사고 정리: 기 존의 배치 에 따라 대체적으로 다음 과 같다.
  • 홈 페이지 방문 nginx 서비스: localhost: 8087
  • nginx 소켓 받 기:
  • server unix:///home/bit/coding_app/hi_weui/hi_weui.sock;
  • socket 수신 uwsgi:
  • socket = /home/bit/coding_app/hi_weui/hi_weui.sock
  • uwsgi 로드 모듈:
  • module=hi_weui.wsgi
  • 모듈 은 django 가 최종 적 으로 서 비 스 를 제공 합 니 다.

  • 7. 서비스 시작
    7.1 테스트 django 개발 서비스 에서 정상
    $ sh start.sh  react
    

    접근:http://127.0.0.1:8088/ start. sh 스 크 립 트 를 한 번 더 실행 하 는 목적 은 응용 프로그램 을 다시 컴 파일 하고 정적 파일 을 collected 로 수집 하 는 것 입 니 다.static 디 렉 터 리 아래
    $ sh stop.sh   #       
    

    7.2 시작 nginx
    $ sudo service nginx restart
    

    접근:http://127.0.0.1:8087/ 이 때 접근 을 제대로 표시 할 수 없습니다:http://127.0.0.1:80 정상 적 인 nginx 알림 페이지 보기
    7.3 슈퍼 바 이 저 시작
    기 존 에 작성 한 프로필 로 시작 하기
    $ pwd
    /home/bit/coding_app/hi_weui
    
    $ supervisord -c supervisord.conf
    
    $ supervisorctl   #       ,  hi_weui     
    hi_weui                          RUNNING   pid 17202, uptime 0:00:39
    supervisor> status
    hi_weui                          RUNNING   pid 17202, uptime 0:00:42
    supervisor> help          
    supervisor> stop hi_weui   #   
    hi_weui: stopped
    supervisor> restart hi_weui #    
    hi_weui: ERROR (not running)   #        
    hi_weui: started 
    

    접근:http://127.0.0.1:8087/ 이 때 는 이미 정상적으로 표시 할 수 있다.슈퍼 바 이 저 를 왜 써 요?nginx 에서 여러 항목 을 동시에 시작 하면 nginx 를 통 해 모든 항목 을 시작 하거나 슈퍼 바 이 저 를 통 해 각각 한 항목 을 시작 할 수 있 습 니 다.
    8 접근 로그
    8.1 nginx 프로필
    /etc/nginx$ cat nginx.conf 
        access_log /var/log/nginx/access.log;
        error_log /var/log/nginx/error.log;
    

    로그 디 렉 터 리 를 볼 수 있 습 니 다.
    8.2 django print 로그 출력 에 대하 여
    nginx 에 배 치 된 후 print 출력 은 표시 되 지 않 습 니 다. 로 그 를 인쇄 하려 면.python logging 모듈 을 사용 하 는 것 을 추천 합 니 다. django 의 settings 파일 에 설정 할 수 있 습 니 다.
    1 번 에서 이곳 으로 돌아 오 면 react 프로젝트 의 비 계 를 완 성 했 고 django 에 통합 되 어 최종 적 으로 nginx 에 배치 되 었 습 니 다.

    좋은 웹페이지 즐겨찾기