宝塔Nginx+uwsgi+Ubuntu20.04+Django部署案例

本文详细介绍了如何在Ubuntu 20.04上配置Django项目,使用uwsgi和Nginx作为服务器。首先,通过安装pip和虚拟环境来准备环境,接着安装uwsgi并克隆项目,安装依赖。然后,创建uwsgi配置文件并设置Nginx配置,创建相应目录并重启Nginx。最后,提到了在宝塔面板上配置Nginx和设置HTTPS证书,以及处理服务器重启时uwsgi的自动启动问题。
摘要由CSDN通过智能技术生成

服务器部署

一、uwsgi配置

准备:重置完服务器后连接服务(腾讯云Ubuntu20.24)

0.0 腾讯云重置密码(设置ubuntu账号的密码)

0.1本地终端 ssh-keygen -R 42.193.6.***

0.2 ssh ubuntu@42.193.6.***

1、安装 pip

$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py   # 下载安装脚本
$ sudo python get-pip.py    # 运行安装脚本

2、安装虚拟环境

pip install virtualenv
virtualenv env_1

3、安装uwsgi(摸爬滚打很多年,必须写第一局,否则不好安装)

sudo apt install python3.8-dev

apt install uwsgi

4、克隆

git clone https://github.com/Bohemian-hub           //自己的gihub项目地址

5、安装requestment.txt 环境

pip install -r requirements.txt

6、制作uwsgi.ini

vim uwsgi.ini
[uwsgi]
#指定与Nginx通信的方式,不影响uwsgi本身运行。如果配置了需要到nginx中进行相关配置-才能通过nginx访问Django

# 启动一个master进程,来管理其余的子进程
master = True
uid=root
gid=root
socket = 127.0.0.1:8002    # 一定要和Nginx中某一项配置成一样
#python虚拟环境目录绝对路径。如果有的话,home是虚拟环境根目录,PYTHNONHOME是虚拟环境下的bin目录(放置了Python执行文件)
home = /project/env_1/
PYTHONHOME = /project/env_1/bin
http = :8001 
#django项目目录,与manager.py同级
chdir = /project/zfnew_webapi/zfnweb

#主应用中的wsgi,下面这种配法是在Django根目录下运行uwsgi有效,主APP名为有settings.py的那个目录名。如果是其他目录运行,下面建议写
成绝对路径。
module = zfnweb.wsgi

#服务停止时自动移除unix Socket和pid文件
vacuum = true
workers = 5
#设置每个工作进程处理请求的上限,达到上限时,将回收(重启)进程,可以预防内存泄漏
max-requests=5000
enable-threads=true
harakiri=30
post-buffering=1028
#设置后台运行保存日志。只要配置了daemonize就会让uwsgi后台运行,同时将日志输出到指定目录
daemonize=/home/script/uwsgi.log

#保存主进程的pid,用来控制uwsgi服务
pidfile=/home/script/uwsgi.pid
#uwsgi --stop/reload xxx.pid 停止/重启uwsgi

#静态文件映射
#static-map = /static=Django下static目录的绝对路径

7、在/home创建文件夹script

mkdir /home/script

8、可以运行

在项目manage.py同级目录 运行 :uwsgi uwsgi.ini

成功配置好uwsgi服务器

二、apt-get install Nginx 配置Nginx(重启就失效了,请直接看三)

1.安装Nginx

apt-get install nginx
# 彻底卸载nginx
apt-get --purge autoremove nginx
#查看nginx的版本号
nginx -v

2.配置Nginx

cd  /etc/nginx/sites-available
vim xcc.conf
server {
    listen 80;
    server_name localhost;
    charset utf-8;

    client_max_body_size 75M;

    location / {
        uwsgi_pass  127.0.0.1:8002;    #这里是和uwsgi.ini中的socket必须一样
        include     /etc/nginx/uwsgi_params;
        uwsgi_param UWSGI_SCRIPT zfnweb.wsgi;
        uwsgi_param UWSGI_CHDIR /project/zfnew_webapi/zfnweb;

    }
}

3.关联文件

ln -s /etc/nginx/sites-available/xcc.conf /etc/nginx/sites-enabled/xcc.conf

*** 注意把sites-enabled中自带的default 删除,不然会404 Not Found。

4.重启Nginx

重启
service nginx restart
关闭
servive nginx stop.  

5.页面测试

地址:42.193.6.230/one/

在这里插入图片描述

三、宝塔配置Nginx

1.安装宝塔

wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh

2.安装成功会有 网址账号密码等等等

3.安装Nginx+ftp即可(我这里用的腾讯云MySQL数据库)无需安装MySQL

4.创建网站,设置域名

5.进入root,到宝塔网站的配置目录,/www/server/panel/vhost/nginx,打开网站名字.conf,去除相关配置。1601507-20190528135435123-1367249826

6.如上图画卷去掉,否则无法正常搭建静态资源,上面是加载缓存。因为,我们是使用宝塔的nginx功能跟绑定域名功能,所以不需要此项,然后,设置一下uwsgi的相关,其它就跟配置不是宝塔nginx一致就不再详说

    location /static {
        # 静态文件地址
        alias /home/python/happy/h_static/;
    }
# 上面这个东西可能是配置静态文件的,但是我现在几乎还用不到,所以就没有配置啦
    location / {
        include uwsgi_params;
        uwsgi_pass 127.0.0.1:8002;
        # uwsgi_params文件地址
    }    

7.进入宝塔,把网站目录改为,收集好的静态资源目录,方便以后,可以直接通过宝塔修改静态资源

四、设置HTTPS证书协议

直接到网站的ssl中粘贴证书文件[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
在这里插入图片描述

五、当重启服务器时候,需要在虚拟环境重启uwsgi

可能是我uwsgi安装在了虚拟环境;

后续配置uwsgi开机自动启动请自行百度。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值