文章目录
一. 安装django环境
1. 导出django的开发环境
激活虚拟环境
pip freeze > package.txt
2. 将包目录上传服务器,并进行安装
将package.txt,放在 /opt目录下
安装 pip3 install -r package.txt
安装过程中出现超时错误:更换下载源 pip3 install -r package.txt -i 源地址
二. 上传django项目
1.将django项目放在 /opt目录下
2.项目测试
systemctl stop firewalld
修改 sttings⽂件,修改 ALLOWED_HOSTS = ['*'] 允许所有的主机访问
启动项目
python3 manage.py runserver 0.0.0.0:8000
如果出现项目报错,可能是配置中对于版本过高的问题,去修改即可
三. 安装uwsgi
上面我们已经完成了python+Django环境的部署,接下来我们需要了解python 的uwsgi框架:
Python manager.py runserver, 这是一款适合开发阶段使⽤的服务器,只支持最朵200的并发,显然不适合在生产中使用。我们在生产环境当中,通常会用到apache或者nginx服务器作为Django的⽣产服务器。今天我们以nginx为例。但是在学习部署之前,我们先要掌握在Django和nginx之间的个程序,就是wsgi,web服务器网关接口(Web Server Gateway Interface )缩写叫WSGI,是Python应用程序或框架和web服务器之间的一种接口。
1. 安装配置uwsgi
pip3 install uwsgi
创建软连接
ln /usr/local/python3/bin/uwsgi /usr/bin/uwsgi
测试uwsgi
uwsgi --http 192.168.1.69:8000 --file OurBlog/wsgi.py --staticmap=/static=static
在项目的主目录(manage.py)
uwsgi --http 10.10.14.180:80 --file Qshop/wsgi.py --static-map=/static=static
上述方法可以实现uwsgi驱动django,但是在工作当中,开发者更加配置文件的形式启动uwsgi
cd /opt
mkdir script
cd script
touch uwsgi.ini
编写 uwsgi.ini
[uwsgi]
chdir=/opt/OurBlog #项目目录
module=OurBlog.wsgi:application #指定项目的application
socket=/opt/script/uwsgi.sock #指定sock的⽂件路径
workers=5 #进程个数
pidfile=/opt/script/uwsgi.pid
http=192.168.2.69:8000 #指定IP端⼝
static-map=/static=/opt/OurBlog/static #指定静态文件
uid=root #用户
gid=root #组
master=true #启动主进程
vacuum=true #自动移除unix Socket和pid文件当服务停止的时候
enable-threads=true #启动线程
thunder-lock=true #序列化接受的内容,如果可能的话
harakiri=30 #设置自中断时间
post-buffering=4096 #设置缓冲
daemonize=/opt/script/uwsgi.log #设置日志目录
启动uwsgi
cd /opt/script
uwsgi --ini uwsgi.ini ## 使⽤ini⽂件启动uwsgi
使用浏览器访问,停止uwsgi
四. 安装NGINX
下载NGINX包
wget -c https://nginx.org/download/nginx-1.12.2.tar.gz
解压NGINX包
tar -zxvf nginx-1.12.2.tar.gz
cd nginx-1.12.2
./configure \
make && make install
创建软链接
ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx
启动nginx查看效果
nginx
五. 修改NGINX的配置文件
进行配置文件备份
具体配置如下: vi nginx.conf
修改server段
listen 监听端口
server_name 服务名字
charset utf -8;#服务器编码
access_log /var/log/nginx/access.log main; #访问⽇志路径,注意:这个⽬录可能没
有,需要创建
gzip_types #压缩格式
error_log /var/log/nginx/error.log error; #错误⽇志注意:这个⽬录可能没有,需要
创建
location / {
include uwsgi_params; #nginx加载uwsgi模块
uwsgi_connect_timeout 30; #连键超时时间
uwsgi_pass unix:/opt/script/uwsgi.sock; #nginx对应的uwsgi
socket⽂件
}
location = /static/ {
alias /opt/OurBlog/static; #静态⽂件路径
index index.html index.htm; #⾸⻚
}
}
创建error.log日志文件
保证NGINX和uwsgi全部停止,然后重新启动
启动uwsgi和nginx
uwsgi --ini uwsgi.ini
nginx
可能会出错:80端口被占用
解决方案:杀死80端口的服务
netstat -ntlp|grep 80
修改uwsgi.ini
修改http=127.0.0.1:8000 不允许外⽹通过ip+8000 端口直接访问django服务
启动,访问服务,部署完成
来源:https://blog.csdn.net/qq_40558166/article/details/102744145