Nginx + Uwsgi + Vue + Django 서버 설정
2884 단어 환경 구축
배경
프로젝트 는 전후 단 분리 개발 이 고 개발 환경 은 전단 에서 하나의 서 비 스 를 시작 하 며 백 엔 드 에서 하나의 서 비 스 를 시작 하 는 것 이다.서버 에 배 치 될 때 백 엔 드 서 비 스 는 uwsgi 를 사용 합 니 다. 구체 적 으로 백 엔 드 인 터 페 이 스 를 요청 하 는 것 입 니까? 아니면 이 방문 전단 사용자 정의 경로 입 니까? nginx 에서 설정 합 니 다.
2: Nginx 설정
upstream myproject_pool{
server unix:/tmp/myproject.sock;
}
server {
listen 80;
server_name 192.168.1.10;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.0;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript text/css application/xml;
gzip_vary on;
client_max_body_size 300m;
#
location /api {
uwsgi_connect_timeout 3000;
uwsgi_send_timeout 3000;
uwsgi_read_timeout 3000;
uwsgi_param Host $host;
uwsgi_param X-Real-IP $remote_addr;
uwsgi_param X-Forwarded-For $proxy_add_x_forwarded_for;
uwsgi_param X-Forwarded-Proto $http_x_forwarded_proto;
include uwsgi_params;
uwsgi_pass myproject_pool;
}
# vue
location / {
try_files $uri $uri/ @router;
index index.html;
}
root /var/www/myproject/html/dist; # , , ,
index login.html;
location @router {
rewrite ^.*$ /index.html last;
}
} 3: Uwsgi
[uwsgi]
socket = /tmp/myproject.sock
pythonpath = /var/www/myproject
pythonpath = /var/www/myproject/myproject
pidfile2 = /tmp/myproject.pid
master = True
processes = 4
# uid=root
# gid=root
plugin = python
# daemonize = /data/log/myproject.log
logto = /data/log/myproject.log
module = wsgi:application
장고
설명 이 필요 한 것 은 django settings. py 설정 파일 에서 정적 파일 설정 을 할 필요 가 없고 정적 파일 수집 을 할 필요 가 없다 는 것 입 니 다.
서비스 시작
uwsgi 프로필 은 / etc / uwsgi / apps - enables / 폴 더 아래 nginx 프로필 을 / etc / nginx / sites - enables / 폴 더 아래 에 두 고 uwsgi 를 시작 하고 nginx 를 시작 합 니 다.
sudo service nginx start
sudo service uwsgi start