Nginx 와 uWSGI 배치

1. 정적 파일
Django 가 생산 모드 에서 실 행 될 때 정적 파일 을 지원 하지 않 습 니 다. 정적 파일 을 정적 파일 서버 에 전달 해 야 합 니 다.
우 리 는 먼저 모든 정적 파일 을 수집한다.프로젝트 의 정적 파일 은 우리 가 사용 하 는 front 를 제외 하고 django 자체 에 정적 파일 이 있 습 니 다. 만약 restframework, xadmin, admin, ckeditor 등.정적 파일 을 수집 해서 정적 파일 서버 에 집중 해 야 합 니 다.
수집 한 정적 파일 을 front 디 렉 터 리 에 있 는 static 디 렉 터 리 에 넣 으 려 면 디 렉 터 리 static 을 먼저 만 듭 니 다.
Django 는 정적 파일 을 수집 하 는 방법 을 제공 합 니 다.먼저 설정 파일 에 수집 한 디 렉 터 리 를 설정 합 니 다.
#        
STATIC_ROOT = os.path.join(os.path.dirname(BASE_DIR), 'front/static')

수집 명령 을 수행 합 니 다.
python manage.py collectstatic

정적 파일 서버 로 Nginx 서버 를 사용 합 니 다.
Nginx 프로필 열기
sudo vim /usr/local/nginx/conf/nginx.conf

주의 하 다.
sudo apt-get install nginx
        :
/usr/sbin/nginx:   
/etc/nginx:      
/usr/share/nginx:      
/var/log/nginx:    

server 부분 에 설정
server {
         listen       80;
         server_name  www.xxx.com;

        location / {
             root   /home/python/Desktop/xxx/front;
             index  index.html index.htm;
         }

        #     
}

Nginx 서버 다시 시작
sudo /usr/local/nginx/sbin/nginx -s reload

nginx 서버 첫 시작
sudo /usr/local/nginx/sbin/nginx

nginx 서버 정지
sudo /usr/local/nginx/sbin/nginx -s stop

2. 동적 인터페이스
설정 파일 settings. py 수정 중
DEBUG = False

ALLOWED_HOSTS = [...,  'www.xxx.com']  #   
CORS_ORIGIN_WHITELIST = (
    '127.0.0.1:8080',
    'localhost:8080',
    
      #   
)

django 프로그램 은 보통 uwsgi 서버 를 사용 하여 실 행 됩 니 다.
설치
pip install uwsgi

프로젝트 디 렉 터 리 / mall 에서 uwsgi 프로필 uwsgi. ini 만 들 기
[uwsgi]
#  nginx     ,Django         
socket=192.168.229.133:8001
#   web     ,Django         
#http=192.168.229.133:8001
#    
chdir=/home/python/Desktop/meiduo/mall
#   wsgi.py     ,       
wsgi-file=mall/wsgi.py
#    
processes=4
#    
threads=2
# uwsgi      
master=True
#          
pidfile=uwsgi.pid
#     ,  uwsgi           ,     。     runserver      
daemonize=uwsgi.log
#          
virtualenv=/home/python/.virtualenvs/py3_django_1.11

uwsgi 서버 시작
uwsgi --ini uwsgi.ini

서버 를 정지 하려 면 kill 명령 외 에 도 통과 할 수 있 습 니 다.
uwsgi --stop uwsgi.pid

Nginx 프로필 을 수정 하여 Nginx 가 요청 을 받 은 후 uwsgi 서버 에 전송 하도록 합 니 다.
   upstream meiduo {
         server 192.168.229.133:8001;
     }

     #gzip  on;
     server {
         listen  8000;
         server_name api.meiduo.site;

         location / {
             include uwsgi_params;
             uwsgi_pass meiduo;
         }

     }


     server {
         listen       80;
         server_name  www.meiduo.site;

         #charset koi8-r;

         #access_log  logs/host.access.log  main;
         location /xadmin {
             include uwsgi_params;
             uwsgi_pass meiduo;
         }

         location /ckeditor {
             include uwsgi_params;
             uwsgi_pass meiduo;
         }

         location / {
             root   /home/python/Desktop/front;
             index  index.html index.htm;
         }


         error_page   500 502 503 504  /50x.html;
         location = /50x.html {
             root   html;
         }

     }

다시 시작 nginx
sudo /usr/local/nginx/sbin/nginx

좋은 웹페이지 즐겨찾기