一.安装Django
sudo apt install python3-pip #安装pip
pip -v # 查看pip的版本
pip install django #默认安装最新的django版本
当然安装前需要更新一下系统的文件
sudo apt update
二.uwsgi
wsgi是python程序的一个网观点接口,用来实现web应用的;
uwsgi是一个python的web服务器,像是node自带的服务器一一样,像是php的fastcgi一样;
首先在ubuntu下载安装uwsgi:
sudo apt install build-essential python3-dev #安装依赖项
pip install uwsgi
输入命令可以检查是否成功
uwsgi --version
三.安装nginx
2.将nginx添加至ubuntu的配置源列表里面
sudo vim /etc/apt/sources.list
添加内容
deb http://nginx.org/packages/ubuntu/ xenial nginx
deb-src http://nginx.org/packages/ubuntu/ xenial nginx
3.更新系统并安装最新的nginx版本
sudo apt update
sudo apt install nginx
5. 查看是否安装成功
nginx -v
四.部署django应用
1.配置nginx配置文件配置转发请求
vim /etc/nginx/conf.d/nginx_uwsgi.conf
文件内容:
upstream django {
server unix:///home/controlsys/skweb/skweb.sock; #这个.sock文件不存在也没关系,启动的时候会自动创建
}
# 配置转发服务器
server {
# 应用监听端口
listen 8001;
# 允许访问的域名 没有域名的话就写服务器的公网ip地址
server_name 114.55.245.83; #这是我的一个django项目,域名为crawler.site,欢迎访问使用
charset utf-8;
#访问日志
access_log /home/controlsys/skweb/log/skweb_access.log;
#错误日志
error_log /home/controlsys/skweb/log/skweb_error.log;
# 最大上传文件大小
client_max_body_size 75M;
# 配置静态文件的请求
location /assets/ {
alias /home/controlsys/skweb/assets/; #项目静态文件地址,使用python3 manage.py collectstatic 将静态文件收集到settings.py文件配置的STATIC_ROOT目录下
}
# 配置django应用的转发请求
location / {
uwsgi_pass 114.55.245.83:8006; #这个必须和uwsgi.ini中配置的socket地址保持一致
include /etc/nginx/uwsgi_params; #这个uwsgi_params文件的地方,默认在/etc/nginx目录下随nginx一起被安装
uwsgi_read_timeout 2;
}
}
2.配置uwsgi启动文件(.ini格式的文件 以我的项目为例)
一般是将它放在django项目的根目录下面,这里假设文件名为uwsgi.ini(可自行定义)
uwsgi.ini 内容如下:
# 项目的uwsgi配置文件
[uwsgi]
# 这个必须要,因为在nginx中的 uwsgi_pass 127.0.0.1:8005
#这个通信端口就是这里明命名的,就是nginx和uwsgi通信的端口了理解成
socket = 114.55.245.83:8006
#如果用nginx的话,不一定用这个,因为这个是http访问的端口,用nginx访问了
http = 114.55.245.83:8005
#项目的路径
chdir = /home/controlsys/skweb/
#wsgi.py文件的路径
wsgi-file = /home/controlsys/skweb/skweb/wsgi.py
3.后台启动项目
uwsgi uwsgi.ini
#在django项目的根目录下面
nohup uwsgi skweb_wsgi.ini & #后台启动项目
接下来重启nginx服务
sudo /etc/init.d/nginx restart