服务器部署
一、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,去除相关配置。
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开机自动启动请自行百度。