Django项目部署Ubuntu服务器上
思路: Nginx反向代理, Uwsgi运行Django程序
安装nginx 和uwsgi
1 2 3 4 5 6 7 8 9 10 11 12
| sudo apt install ngin
python3 -m venv venv
source venv/bin/activate
pip install uwsgi
sudo ln -s /home/ubuntu/django/venv/bin/uwsgi /usr/bin
|
配置Uwsgi文件
在django 下面创建uwsgi.ini
文件,内容如下
1 2 3 4 5 6 7 8 9 10 11
| [uwsgi] socket = 127.0.0.1:8081 http = :8080 chdir = /home/ubuntu/django/book_recommend wsgi-file = django_project/wsgi.py @ uwsgi 文件目录 processes = 4 threads = 2 master = true vacuum = true pidfile = uwsgi8081.pid daemonize = uwsgi8081.log
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| uwsgi --ini uwsgi.ini
killall -9 uwsgi
uwsgi --stop uwsgi.pid
ps -ef |grep uwsgi
lsof -i :8080
|
配置Nginx文件
在/etc/nginx/sites-available/
创建django.conf
配置内容如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| server { listen 8080; server_name ihls.xyz; location / { include uwsgi_params; uwsgi_pass 127.0.0.1:8081; uwsgi_param UWSGI_SCRIPT /home/ubuntu/django/book_recommend/django_project.wsgi; uwsgi_param UWSGI_CHDIR /home/ubuntu/django/book_recommed; index index.html index.htm; client_max_body_size 35m; }
location /media { alias /home/ubuntu/django/book_recommend/media; }
location /static { alias /home/ubuntu/django/book_recommend/static; } }
|
ps: 注意权限不够可以修改/etc/nginx/nginx.conf
中user root;
1 2 3 4 5 6 7 8
| sudo ln -s /etc/nginx/sites-available/django.conf /etc/nginx/sites-enabled/
sudo service nginx restart
sudo nginx -s reload
|
到此,配置可以正常进行访问。结下来配置supervisor,使开机自动运行
配置supervisor
1 2 3 4 5
| sudo apt install supervisor
sudo vi /etc/supervisor/conf.d/django.conf
|
进行如下配置django.conf
1 2 3 4 5 6 7 8
| [program:django] user=ubuntu directory=/home/ubuntu/django/ command=uwsgi --ini uwsgi.ini autostart=true autorestart=true stdout_logfile=/var/log/django/stdout.log stderr_logfile=/var/log/django/stderr.log
|
运行命令生效
1 2 3 4 5 6 7
| sudo mkdir /var/log/django
sudo supervisorctl reread sudo supervisorctl update
|