Django 학습 (一) 웹 사이트 배포 프로세스

3992 단어

비즈니스 프로세스 배포


0、이미 갖추어진 조건


django 프로젝트는 설립 초기에 uwsgi의 인터페이스를 예약했습니다.나는 전체 프로젝트 배치 절차를 배운 후에 이것이 가장 간단한 배치 방식이라고 느꼈다.이 자리에서 저는 저의 친구인 @ 샤오비협에게 특별히 감사를 드립니다. 그의 무수한 밤낮의 가르침과 도움 없이는 저는 반드시 그렇게 빨리 프로젝트의 배치를 독립적으로 완성할 수 없습니다.
선행 조건
  • 서버 공급업체를 선택하고 서버 실례를 구축합니다. 이번 배치에서 저는 아마존 EC2 서버를 사용했습니다. 이것은 1년 동안 무료로 사용할 수 있는 서버입니다.AWS 클라우드 서비스 - 가장 전문적인 빅데이터 및 클라우드 컴퓨팅 서비스 및 클라우드 솔루션 공급업체 1.1.특히, 아마존 EC2는 해외 사이트이기 때문에 비교 카드이기 때문에 조건이 있는 친구는 텐센트 클라우드, 아리운 등 국내 클라우드 서비스
  • 를 이용할 것을 권장한다
  • 이번에 우리는 uwsgi+nginx 방안을 사용하여django 프로젝트를 배치할 계획이다. 이것도 현재 가장 신뢰할 수 있는 프로젝트 배치 방안이다.
  • Xshell 도구를 사용하여 서버를 연결하고 여기서부터 전체 배치 절차를 시작합니다.
  • 도메인 이름 구입(옵션)
  • 1. 설치 환경

  • 슈퍼 관리자su(sudopasswd 비밀번호 설정)에 들어가고 pip3를 최신으로 업그레이드합니다.
  • uwsgi,nginx,libmysqld-dev,mysql-server 설치;
  • 배치 대기 업무와 프로필 패키지 업로드(/home/ubuntu);(Xshell에 새 파일 전송 Ctrl+Alt+F, 프로필은 uwsgi 파일,nginx 파일, 프로젝트 데이터 파일 포함)
  • test.py 테스트 uwsgi;테스트 방법에 대한 강좌는 다음과 같습니다. uWSGI+django+nginx의 작업 원리 절차와 배치 과정
  • uwsgi --http :8000 --wsgi-file test.py
    
  • 서버 오픈 포트 TCP 조정: 8000, 보안 그룹: 0.0.0.0/24 ALL
  • 설치 프로젝트 환경: 이 프로젝트 환경은 당신이 개발 과정에서 사용하는 프로젝트 환경입니다. 사용 가능
  • pip freeze > requirements.txt
    

    위의 파일을 서버로 이동하려면 다음 명령을 사용하십시오.
    pip3 install -r requirement.txt
    

    2. 실제 설치 항목

  • 프로젝트 위치를 특정 디렉터리로 이동(/opt/);(모든 항목을 홈에 두지 않는 것이 가장 좋다. 혼란스러울 것이다)
  • 업무 파일 다음 단계에서 설정 폴더script를 만들고 uwsgi를 복사합니다.ini 및 경로 수정, 예시대로 설정 수정.py(파일을 너무 많이 적용하면 전체적인 교체가 잘못되기 쉽다)
  • .../django-project/django-project/settings.py

  • DEBUG=False(Debug 상태에서 종료)

  • ALLOWED_HOSTS = ['*'] (모든 호스트에서 항목에 액세스할 수 있음)

  • STATIC_URL ='/static/'(정적 파일 주소)

  • STATIC_ROOT='/opt/MyProject/store/static/'(정적 파일 루트)
  • 데이터베이스 구축: mysql 명령줄에 들어가면 데이터베이스 이름은 개발 때와 같다create myproject
  • 정적 파일 수집python3 manage.py collectstatic (django 명령)
  • 실제 항목 python3 manage.py migrate (django 명령)
  • 데이터베이스 가져오기source /opt/peizhi/myproject.sql;(이것은 mysql 명령) 만약에 프로젝트가 개발 과정에서 데이터가 함께 이동해야 한다면 미리 데이터를 내보내고 서버에 업로드한 다음에 상기 명령에 따라 가져와야 한다.

  • 3. 온라인

  • 프로필nginx, /etc/nginx/sites-avable/novel.conf 복사 및 수정
  •     listen 80;
        server_name localhost;
        charset     utf-8;
        access_log      /wwwroot/destiny/nginx_access.log;
        error_log       /wwwroot/destiny/nginx_error.log;
        client_max_body_size 75M;
        location /static {
            alias /wwwroot/destiny/destiny/static;
        }
    
        location / {
            include     /etc/nginx/conf/uwsgi_params;
            uwsgi_pass  127.0.0.1:9090;
        }
    }
    
  • novel을 수정합니다.conf 경로, IP 등 정보;
  • /sites-enable 폴더 설정 바로 가기 들어가기ln -s /etc/nginx/sites-avable/novel.conf ./novel.conf
  • uwsgi 시작,nginx 시작(각종 명령은 요점 참조)
  • 만약 의외의 일이 발생하지 않는다면, 시작 명령을 입력한 후에 배치에 성공했어야 한다


    프로필 요점

  • uwsgi.ini 프로필은django 프로젝트 총 폴더 아래에 있습니다 (경로 주의).
  • novel.conf 프로필은/etc/nginx/sites-available/아래에 있습니다.
  • novel.conf 프로필은/etc/nginx/sites-enabled/에서 연결됩니다. ln-s/etc/nginx/sites-available/novel.conf ./novel.conf
  • setting.py는django 파일에서python3 관리자에게 명령을 받습니다.py collectstatic
  • mysql 기초 파일,libmysqld-dev 가져오기
  • 옆 서버에 가서 물건을 가져오기: ssh ubuntu@ (대상 내망 IP);scp novelsite.zip [email protected](네이티브 네트워크 IP):/home/ubuntu/
  • 시작 명령

  • uwsgi --ini uwsgi.ini#uwsgi 시작
  • uwsgi --stop uwsgi.pid # uwsgi 닫기
  • uwsgi.reload()#uwsgi 다시 시작
  • service nginx start/status/stop
  • nginx-t#프로필 오류 여부 검사
  • nginx-sreload#열중량 프로필
  • tail -fn300 uwsgi.log # 재생 로그 파일 300행 스크롤
  • netstat-tulnp#포트 및 프로세스 번호 보기
  • iftop# 데이터 모니터링 보기, 설치 필요
  • ps-ef|grepnginx#관련 기능 프로세스 보기
  • kill-91234#1234의 프로세스를 강제로 정지
  • ScrapyD

    좋은 웹페이지 즐겨찾기