Nginx+uWSGI+Django部署
程序员文章站
2022-03-19 23:46:25
...
第一步 我们首先在阿里云 或者 腾讯云 购买云服务器 或者领取免费体验天数 由于我们使用的是 ubuntu 系统 那么就选这个系统 如果是16.04就选16.04版本 然后点击购买
第二部 我们点击控制台
###在这里我们演示的是阿里云控制台 腾讯的也叫控制台
第三部 我们找到左方的云服务器
第四部 我们找到左方的实例选项
如果没有做系统 我们第一次要给云服务器做系统 彻底清空这个服务器
点击右边的更多
点击停止 然后点击更多更换系统盘
点击确认更换 按照下图 配置并确认更换
点击验证 并确认
等待…
成功√
腾讯云 重装系统 点击更多 重装系统就可以 然后 按照上述步骤去操作
第五步 我们复制公网的ip地址
第六步 我们打开本地的终端
没有 ssh 提前下载ssh
第七步 我们输入我们服务器的密码
ssh 写用户名@写公网IP
如果出现这种情况
删除选中的地址
在登入 点击yes并输入密码
第八步 我们配置我们的云服务器
首先更新软件的两条命令 由于它是超级用户 所以我们不用sudo 如果不是超级用户就要加入 sudo
第一条
sudo apt update
第二条
sudo apt upgrade
等待 下载完成
然后安装 python3 pip
sudo apt install python3-pip
安装 virtualenv
sudo pip3 install virtualenv
如果安装virtualenv报错 请不要紧张 我们有绝世秘籍
分析原因
locale是用来设置软件运行的语言环境,所以语言环境设置有问题
解决故障 复制这三条 命令 一条一条输入 在登入云服务器
重新设置语言环境,最简单的解决办法:
第一条
echo "export LC_ALL=en_US.UTF-8" >> /home/XXX/.bash_profile 代表(特定用户)
第二条
echo "export LC_ALL=en_US.UTF-8" >> /etc/profile 代表(所有用户)
第三条
exit
然后重新登录,使用locale指令查看变量
###开始安装
安装 virtualenvwrapper
sudo pip3 install virtualenvwrapper
配置三条命令
输入命令
vi .bashrc
复制这三条命令到文档
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
source /usr/local/bin/virtualenvwrapper.sh
**
source .bashrc
创建虚拟环境
mkvirtualenv 项目名
退出 虚拟环境 并安装mysql数据库
退出虚拟环境
deactivate
安装 mysql数据库
sudo apt-get install mysql-server mysql-client
###配置数据库 输入一遍密码在输一遍密码
然后安装 filezilla 这款软件可以将本地文件上传到云服务器
sudo apt-get install filezilla
###将虚拟环境pip里面的插件放到桌面上
然后将备份的数据库 和 项目都放到桌面上
打开filezilla 配置 ip 用户名 密码 端口
然后 找到 桌面上的文件 鼠标右键upload上传
然后 进入数据库 创建个 和之前settings同样的库 然后退出 把 备份的数据库资料导入到云上的mysql数据库
###进入虚拟环境 把备份的pip插件 导入到当前云虚拟环境上
进入你的项目
创建 一个conf文件夹
mkdir conf
###vi 第一个文件 文件名是你的项目名加上 项目名_nginx.conf将里面将以下信息复制填写带双引号的信息
* Socket connection established *
Welcome to Ubuntu 16.04.5 LTS (GNU/Linux 4.4.0-130-generic x86_64)
# the upstream component nginx needs to connect to
upstream django {
# server unix:///path/to/your/mysite/mysite.sock; # for a file socket
server "外网iP"; # for a web port socket (we'll use this first)
}
# configuration of the server
server {
# the port your site will be served on
listen 80;
# the domain name it will serve for
server_name "你的公网地址"; # substitute your machine's IP address or FQDN
charset utf-8;
# max upload size
client_max_body_size 75M; # adjust to taste
# Django media
location /media {
alias /home/ubuntu/"目录名"/static/media; # 指向django的media目录
}
location /static {
alias /home/ubuntu/"目录名"/static; # 指向django的static目录
}
# Finally, send all non-media requests to the Django server.
location / {
uwsgi_pass django;
include uwsgi_params; # the uwsgi_params file you installed
}
}
vi uwsgi.ini将以下信息复制填写带双引号的信息 并删除双引号!!!
# mysite_uwsgi.ini file
[uwsgi]
# Django-related settings
# the base directory (full path)
chdir = /home/ubuntu/"项目名"
# Django's wsgi file
module = "项目名".wsgi
# the virtualenv (full path)
# process-related settings
# master
master = true
# maximum number of worker processes
processes = 10
# the socket (use the full path to be safe
socket = 127.0.0.1:8000
# ... with appropriate permissions - may be needed
# chmod-socket = 664
# clear environment on exit
vacuum = true
virtualenv = /home/ubuntu/.virtualenvs/"虚拟环境"
#logto = /tmp/mylog.log
将项目包中setting文件 将一段static链接代码注释 填入另一种代码
STATIC_URL = '/static/'
#STATICFILES_DIRS = [
# os.path.join(BASE_DIR, 'static'),
#]
STATIC_ROOT = os.path.join(BASE_DIR,'static/')
MEDIA_URL = '/media/'
# 没加入富文本 不用复制这些
# 放在django项目根目录,同时也需要创建media文件夹
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
CKEDITOR_UPLOAD_PATH = 'upload/'
安装nginx
sudo apt-get install nginx
安装uwsgi
pip install uwsgi
测试nginx有没有成功
ps aux|grep nginx
将配置文件加入到nginx的启动配置文件中(当然你也可以把文件直接拷贝进去)这里我们利用了软连接
sudo ln -s /home/ubuntu/"项目名"/conf/"项目名"_nginx.conf /etc/nginx/conf.d
###确认称没成功
###重启nginx
进入虚拟环境 进入项目 运行这个命令
python manage.py collectstatic
###成功
进入虚拟环境 进入项目 进入conf文件夹 拉起uwsgi -i uwsgi.ini
然后 输入你的 公网:80/加上你的路由首页
绑定你的域名
进入项目里面的conf里面的uwsgi.ini 把前面的域名去掉
进入项目里面的conf里面nginx.conf 把外网名改成 你的域名
上一篇: JavaScript中const,var,let区别
下一篇: @RequestBody
推荐阅读
-
Angular项目从新建、打包到nginx部署全过程记录
-
时序数据库DolphinDB基于Docker的集群部署教程
-
详解Nuxt.js部署及踩过的坑
-
Nginx + FastCGI 程序(C/C++) 搭建高性能web service的Demo及部署发布
-
Docker Nginx容器制作部署实现方法
-
详解docker部署Jenkins新手使用教程
-
Linux下部署Symfoy2对app/cache和app/logs目录的权限设置,symfoy2logs_PHP教程
-
如何利用phar简化web项目部署
-
pyTorch模型部署--高并发web服务 c++ 移动端ncnn
-
python fabric实现远程操作和部署示例