Django网站部署
作者:互联网
1.安装django
可通过以下两种方式来安装django(二择一即可):
sudo pip3 install django==1.11.28
sudo pip3 install -i https://pypi.douban.com/simple/ django==1.11.28
安装过程可能会碰到以下的错误:
解决:这里需要先升级pip:python3 -m pip install --upgrade pip;
升级完后可能会报以下的错:
解决:先查找lsb_release文件:sudo find / -name lsb_release;
找到后删除:sudo rm -rf /usr/bin/lsb_release(这里的路径要跟查找到的一致);
我这里安装成功后,可查看到路径在 /usr/local/python3.6.5/lib/python3.6/site-packages/django;
接着,开始创建django项目;
> cd /
> mkdir www
> cd www/
> mkdir djangoPro
> cd djangoPro
> django-admin startproject webtest # 创建项目webtest
> sudo apt install tree # 下载tree命令
> tree # 查看当前目录下的文件结构
之后,进入webtest中,运行 sudo python manage.py runserver,浏览器访问127.0.0.1:8000;
2.配置 uwsgi
在webtest/webtest目录下创建uwsgi.ini:sudo gedit uwsgi.ini,文件配置内容如下:
[uwsgi]
http=127.0.0.1:8000
chdir=/www/djangoPro/webtest #项目目录-绝对路径
wsgi-file=webtest/wsgi.py # wsgi.py 所在路径-相对路径
process=4
threads=2
pidfile=uwsgi.pid # 服务器 pid 文件
daemonize=uwsgi.log # 日志文件
master=true # 开启主进程管理模式
# 解决问题:uwsgi.log,显示:ImportError:no moudle named ‘django’
pythonpath=/usr/local/python3.6.5/lib/python3.6/site-packages
进入uwsgi.ini目录下执行命令,启动uwsgi服务:sudo uwsgi --ini uwsgi.ini,并访问:127.0.0.1:8000;
注:每次修改uwsgi.ini后要执行以下命令;
可以通过以下命令查看是否启动uwsgi服务;
3.nginx负载均衡
这里的浏览器与服务器之间的请求与响应中跟上篇描述的相比多了个nginx,它的作用与uwsgi有共同之处就是可以将http转换为django认识的uwsgi,但nginx比uwsgi多了分发功能,使服务器可以跑多个进程。
(1) 安装nginx
sudo apt install nginx
可能会报以下的错:
解决:
访问127.0.0.1显示界面如下:
(2)修改nginx配置
修改配置文件:/etc/nginx/site-enabled/default;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
# try_files $uri $uri/ =404;
uwsgi_pass 127.0.0.1:8000;
include /etc/nginx/uwsgi_params;
}
修改完后重启:sudo /etc/init.d/nginx restart ;
这里要注意,修改uwsgi.ini,否则会报错:504 Gateway Time-out;
http=127.0.0.1:8000
修改为:
socket=127.0.0.1:8000
写完后,可以将 settings.py 中的 DEBUG 改为 False,ALLOW_HOST=['*'],方便外网访问。
4.nginx配置静态资源
在项目下创建static文件;
在settings.py添加:STATIC_ROOT = ‘/www/djangoPro/webtest/static’;
执行:python3 manage.py collectstatic,重定向静态文件到STATIC_ROOT中,包括django内建静态文件;
在nginx配置中添加:
location /static {
root /www/djangoPro/webtest;
}
重启nginx,访问浏览器:127.0.0.1/admin:
外网访问:http://192.168.0.112/admin:
标签:0.1,nginx,部署,sudo,webtest,Django,网站,django,uwsgi 来源: https://blog.csdn.net/m0_54143674/article/details/122137488