博客就要上线了,心里还是很紧张的,害怕会出现这样那样的问题
使用目前主流 nginx + uwsgi socket 的方式来部署 Django项目
一、运行开发服务器测试
# 进入项目目录
cd yyqblog
python manage.py runserver
运行开发服务器测试,确保开发服务器下能正常打开网站
二、关闭防火墙
firewall-cmd --state #查看防火墙状态
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
三、安装基础包
缺少gcc,没法make,所以安装gcc
yum -y install gcc
- 安装ssl
yum -y install openssl-devel
- 安装zlib
yum install zlib
yum install zlib-devel
- 安装 libffi
yum -y install libffi-devel
- 安装nginx
yum -y install nginx
- nginx命令
systemctl start nginx # 开启nginx服务 systemctl stop nginx # 停止nginx服务 systemctl restart nginx # 重启nginx服务
开启nginx后,浏览器中输入服务器ip地址,能够打开,如图
四、安装python3.7.4
- 下载官网的python3.7.4
wget https://www.python.org/ftp/python/3.7.0/Python-3.7.4.tar.xz
- 解压缩文件
tar -xvf Python-3.7.4.tar.xz
cd Python-3.7.0
- 将python安装到/usr/local/python3
./configure --prefix=/usr/local/python3
- 编译并安装
make && make install
- 建立软连接,让系统识别python3时调用python3.7.4版本
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
- 建立软连接,让系统识别pip3
ln -s /usr/local/python3/bin/pip3.7 /usr/local/bin/pip3
- 更新升级pip3
pip3 install --upgrade pip
五、安装virtualenv
pip3 install virtualenv
- 查看状态
virtualenv -h
- 创建项目文件夹
mkdir -p /root/Django
cd /root/Django
- 为这个项目创建虚拟环境
virtualenv yyqblog_env
- 开启虚拟环境
source yyqblog_env/bin/activate
- 退出env虚拟环境
deactivate
六、安装项目所需依赖 进入虚拟环境
cd /root/Django
source yyqblog_env/bin/activate
在本地的虚拟环境导出所有依赖
pip freeze >requirements.txt
这时候将项目文件夹压缩
在ssh中输入
rz # 用于从本地上传文件
若提示 command not found 请先安装
yum -y install lrzsz
上传到 /home/Django
然后解压缩
unzip yyqblog # 若文件夹中有中文命名的文件,为了避免乱码 用 unzip -O GBK 解压
同样的,若提示 command not found
yum -y unzip
解压完成后切换到项目文件夹
cd yyqblog
- 一键安装项目依赖
# 必须先进入虚拟环境
pip3 install -r requirements.txt
安装好依赖后,我们在安装最后一个包 ---> uwsgi
pip3 install uwsgi
在项目根目录下新建uwsgi.ini文件,写入如下内容
[uwsgi]
# uwsgi 启动时所使用的地址与端口
socket = 127.0.0.1:8001
#指向网站根目录
chdir =/home/Django/yyqblog
# 加载一个WSGI模块
module=yyqblog.wsgi
#启动2个工作进程
processes = 2
#线程数
threads = 2
# 使进程在后台运行,并将日志打到指定的日志文件或者udp服务器
daemonize = uwsgi.log
#指定存放pid的文件
pidfile = uwsgi.pid
# 启动主进程,来管理其他进程,其它的uwsgi进程都是这个master进程的子进程,如果kill这个master进程,相当于重启所有的uwsgi进程。
master = True
然后启动uwsgi
uwsgi --ini uwsgi.ini
剩最后一步,修改nginx配置
vim /etc/nginx/nginx.conf
新建一个server块,写入如下内容:
server {
# 监听端口
listen 80;#端口可以自定义
# 监听ip
server_name 自己服务器的ip地址或域名;
#动态请求
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:8001;# 需要与uwsgi.ini中设置的相同
uwsgi_param UWSGI_SCRIPT yyqblog.wsgi; # wsgi模块
uwsgi_param UWSGI_CHDIR /home/Django/yyqblog/; # 项目目录
}
location /static {
alias /home/Django/yyqblog/static/; # 静态文件目录
}
}
修改后保存并退出,重启nginx服务
systemctl restart nginx.service
到此配置完毕,在浏览器中输入公网IP地址,可以看到自己的博客页面!
如果有报错,可以根据提示进行查找排查问题。
最后修改于2020年3月16日 13:23
©允许规范转载
Django Python版权声明:如无特殊说明,文章均为本站原创,转载请注明出处
本文链接:https://www.yangyingqi.com/10.html