Django 구성(wsgi 배포)

10888 단어
1. Django 구성
 
1.settings.py 구성
전역 settings 복사.py 프로필, MyBlog/pro 라는 사본을 만듭니다.settings.py, 수정 DEBUG는 False입니다.
DEBUG = False

#       ip   
ALLOWED_HOSTS = ["www.youkou.site", "39.108.191.165", "localhost", "127.0.0.1"]  
#             IP  ,*       

 
2.wsgi.py 구성
#   MyBlog/wsgi.py  

import os

from django.core.wsgi import get_wsgi_application

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'MyBlog.pro_settings')     #        settings   

application = get_wsgi_application()

 
3. 마이그레이션 파일 생성
1、배치할 해석기에 들어가서 pip freeze > test를 실행합니다.txt는 해석기 라이브러리의 이동 파일을 생성한 다음 pip install -r test를 통과합니다.txt 설치 라이브러리
참고: fdfsclient.zip에 이 가방이 있는 것은 폴더에서 삭제해야 합니다. 수동으로 설치해야 합니다. 직접 pip에 설치된 것은python2의 3입니다. 사용할 수 없습니다.
 
4.python3 및 가상 환경 설치
가상 환경 만들기
#
mkvirtualenv dj_pro

프로젝트 관련 패키지 설치
#        
workon dj_pro
#    
#    requirements.txt    fdfs-client-py  
pip install -r requirements.txt
#          fdfs_client.zip 
pip install fdfs_client.zip

 
5. 배포된 업로드 서버
프로젝트 로컬 디렉터리를 서버에 업로드 (아리운 ECS 서버일 수 있음)
방법1:
xshell로 아리운 서버에 연결할 수 있으며 rz 명령을 통해 로컬 프로젝트 디렉터리를 zip으로 압축한 후 서버에 업로드아리운 서버에서 unzip으로 압축 파일 풀기unzip .zip
방법2:
ssh 연결을 제공하는 도구를 사용하여 프로젝트 디렉터리를 서버 홈 디렉터리에 보낼 수 있습니다 scp -r @ IP:~/ -p ssh
#   
scp -r /home/Conner/MyBlog root@   IP:~/ -p 22

 
6.uwsgi 설치 테스트
#        
workon dj_pro

#   uwsgi
pip install uwsgi

uwsgi가 성공적으로 설치되었는지 테스트하려면:
#     py  

# test.py
def application(env, start_response):
    start_response('200 OK', [('Content-Type','text/html')])
    return [b"Hello World"] # python3
    #return ["Hello World"] # python2

테스트py 파일 디렉토리에서 서버에서 uwsgi를 실행합니다.
uwsgi --http :8000 --wsgi-file test.py

uwsgi의 작동 여부를 테스트합니다.
127.0.0.1:8000   #     url

 
7.uwsgi 구성
프로젝트 루트 디렉터리에 deploy 디렉터리를 만들고 새 uwsgiconf.ini 파일
[uwsgi]
#   nginx     ,Django         
#     IP   
socket=172.18.168.123:8000

#      
chdir=/home/Conner/MyBlog

#   wsgi.py       
wsgi-file=MyBlog/wsgi.py

#    
processes=2

#    
threads=2

# uwsgi      
master=True

#          
pidfile=uwsgi.pid

#     ,  uwsgi           ,     。   runserver      
daemonize=logs/uwsgi.log

#
virtualenv=/home/Conner/.virtualenvs/dj_pro

8. uwsgi 시작
deploy 디렉터리로 전환하여 로그 파일을 저장할 logs 폴더를 만듭니다
#   uwsgi
uwsgi --ini uwsgi_conf.ini &

#   uwsgi
uwsgi --stop uwsgi.pid

 
2. Ubuntu 18.04에 구성 Nginx 설치
(주로 정적 파일 서비스용)
1. Installing Nginx 설치
#   nginx
sudo apt update -y
sudo apt install nginx -y
#   nginx,      ,       active,       
sudo systemctl start nginx && sudo systemctl status nginx

 
#기본적으로 80포트를 켜서 웹 서비스를 제공하는지 확인
curl -I 127.0.0.1

 
2.nginx 관리 명령
웹 서버 중지
sudo systemctl stop nginx

To start the web server when it is stopped, type:
sudo systemctl start nginx

To stop and then start the service again, type:
sudo systemctl restart nginx

If you are simply making configuration changes, Nginx can often reload without dropping connections. To do this, type:
sudo systemctl reload nginx

By default, Nginx is configured to start automatically when the server boots. If this is not what you want, you can disable this behavior by typing:
sudo systemctl disable nginx

To re-enable the service to start up at boot, you can type:
sudo systemctl enable nginx

 
3.nginx 구성
/etc/nginx/conf.d/nginx 만들기dj_pro.conf 파일:
upstream MyBlog {
    #    uwsgi   ip      
    server 172.18.168.123:8000;
}

server {
    #         
    listen      80;

    #        ip  
    server_name 39.108.191.165 .youkou.site;

    #   
    charset     utf-8;
    
    #         
    client_max_body_size 75M;
    
    #     
    location /media  {
        alias /home/Conner/MyBlog/media;
    }
    
    #     
    location /static {
        alias /home/Conner/MyBlog/static;
    }
    
    #    
    location / {
        uwsgi_pass  MyBlog;
        include    /etc/nginx/uwsgi_params;
    }
}
#   sudo vim /etc/nginx/nginx.conf
#          , www-data        

user pyvip;
#   nginx        ,
sudo nginx -t -c /etc/nginx/nginx.conf
#
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

#       

sudo nginx -c /etc/nginx/nginx.conf

sudo nginx -s reload

 
전재 대상:https://www.cnblogs.com/jun-1024/p/10964681.html

좋은 웹페이지 즐겨찾기