实验环境
操作系统:Ubuntu 16.04.6
python: 3.7.6
Django: 2.2
Nginx: 1.10.3
uWSGI: 2.0.18
安装
这部分一般没什么问题,网上教程也很多,nginx 和 uWSGI 我是用 apt-get install
和 pip3
安装的,虽然安装的版本可能有点旧,但是省了麻烦
配置
Nginx 的配置确实头疼,每个人的项目、系统、版本都不同,导致每个人配置的结果也是各不相同。直接套用博客基本很难成功
所以我这里的配置过程也主要是自己记录一下,确保自己下次配置更加顺利
配置Django
使用Xftp将整个Django项目文件拖到 /home 目录下
修改settings.py
- DEBUG=False
- ALLOWED_HOSTS = [’*’,](也可以改的更详细,不过这样省心)
确保有一个静态文件目录和一个媒体文件目录
MEDIA_ROOT = os.path.join(BASE_DIR, 'uploads')
MEDIA_URL = '/media/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
STATIC_URL = '/static/'
将静态文件拷贝到目录下
按照Django的方式,一般每个应用下都有一个静态文件目录,此时需要将它们全部拷贝到创建好的这个目录下,使用Django自带的命令完成拷贝
python manage.py collectstatic
配置 Nginx
首先写配置文件,在项目目录下创建一个 .conf
文件,作为该项目的配置文件
upstream django {
# 端口号可以改
server 127.0.0.1:8083;
}
server {
# 监听端口
listen 8080;
# 这里我看博客里说可以写域名,但是还要配置dns,我这里直接写的IP地址
server_name ***.***.***.***;
charset utf-8;
client_max_body_size 75M;
location /media {
# 这里写前面创建的资源文件目录地址
alias /home/MyBlog/uploads;
}
location /static {
# 这里写前面创建的静态文件目录地址
alias /home/MyBlog/static;
}
location / {
uwsgi_pass django;
# 从 /etc/nginx/ 目录拷贝来的
include /home/MyBlog/uwsgi_params;
}
}
此时Nginx还不知道使用此文件作为配置文件
Nginx 的配置,通过修改 /etc/nginx/nginx.conf
文件实现,在文件中 http
配置部分包含着这么一行
include /etc/nginx/sites-enabled/*;
所以在该目录下创建一个刚写的配置文件的软链接
ln -s /home/<项目目录名>/***.conf /etc/nginx/sites-enabled/***.conf
这里一定要用绝对路径,第一次用相对路径,然后查看端口监听情况发现8080端口没有被nginx监听,找了半天问题发现是用了相对路径根本没有链接到
链接好后,依次使用以下命令应用配置文件(Nginx服务已经开启)
nginx -t
nginx -s reload
一切顺利,Nginx已经使用配置文件重启了服务,可以使用 netstat -tnlp
查看端口监听情况
配置uWSGI
创建 .ini 文件作为uWSGI 启动的参数
[uwsgi]
# 项目目录
chdir=/home/MyBlog
# 导入项目的wsgi模块
module=MyBlog.wsgi:application
wsgi-file=MyBlog/wsgi.py
master=True
pidfile=/tmp/project-master.pid
vacuum=True
max-requests=500
# 刚刚在nginx配置文件中反向代理的端口号
socket=:8083
uid=root
gid=www-data
daemonsize= /var/log/uwsgi/MyBlog.log
log-maxsize=50000000
disable-logging=true
里面有些参数不是必要的,因为配置的时候也是一知半解,看有的博客里有就写上了
接下来启动uWSGI
sudo uwsgi --ini <刚写的.ini文件>
运行
一切顺利后,在pc浏览器中输入IP和端口号,就能看见Django项目了
调试
Nginx日志文件地址 /var/log/nginx/error.log
查看监听情况 netstat -tnlp
参考资料
来源:CSDN
作者:IuSpet
链接:https://blog.csdn.net/IuSpet/article/details/104114931