비즈니스 프로세스 배포
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