Django个人博客开发九 | Nginx+uwsgi 部署 Django 项目


2020年4月2日 22:39 阅读 1113 评论 0 None

博客就要上线了,心里还是很紧张的,害怕会出现这样那样的问题

使用目前主流 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地址,能够打开,如图

nginx欢迎界面

四、安装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年4月2日 22:39
©允许规范转载

版权声明:如无特殊说明,文章均为本站原创,转载请注明出处

本文链接:https://www.yyqblog.com/article/10.html

微信
支付宝
登录后即可进行评论/回复