Django+uWSGI+Nginx 迁移至云服务器+域名+ssl证书配置

前言

      本文记录了本人在将由Django搭建的web迁移至服务器并发布的过程中踩的一些坑。可能存在一些无效操作,但结果是好的。。。如果发现错误欢迎指正。

前期准备

  1. 云服务器(我使用的是腾讯云的轻量应用服务器)
  2. 备案好的域名(用的也是腾讯云的)
  3. 由Django搭建好的web(也可以是没搭建好的。。。)
  4. 申请好的ssl证书
  5. vscode(自选,个人觉得vscode挺好用)

项目迁移

      使用vscode的话直接利用Remote - SSH这个扩展连接云服务器,安装完扩展后依次点击图中1、2在这里插入图片描述点击完之后选择C:\User\用户名\.ssh\config
在这里插入图片描述
这里我们需要配置一下目标服务器的信息。如图
在这里插入图片描述这里需要注意一下,腾讯云是不能直接用root用户连接的。

      配置完成之后我们需要点右击刚刚配置好的主机名,选择连接。第一次登陆需要依次选择操作系统、继续在这里插入图片描述      这时候如果弹出1那个框就输入你刚刚配置的user对应的密码,没有弹出就点击右下角2处输入。(云服务器有时候可能因为各种原因连接不上,多重复两次就行,三次以上还不行就去排查配置、服务器的安全组等)在这里插入图片描述
      成功连接至云服务器后我们需要选择一下打开的文件夹,点击左上角打开项目的位置,看到1则连接成功,点击2,弹出3选择你想要迁移目标位置。
在这里插入图片描述
      选择好了之后需要重新输入一次密码,后面就简单了,新建文件夹等一系列操作都是和本地操作是一样的,可以直接拖动本地项目到目标位置也可以新建django项目(最好放在/home下,腾讯云因为是ubuntu用户连接,提示没有权限的话就在有权限的位置放置后打开终端,登录root用户cp文件夹过去就行了)。

服务器端配置

      在终端进行的一系列安装

sudo apt-get update # 更新源
sudo apt-get install mysql-server # 安装数据库(mysql为例)
systemctl status mysql # 验证数据库是否安装成功

sudo apt install python3-django # 安装django
pip3 install django

sudo apt list --installed|grep -E ‘libmysqlclient-dev|python3-dev’ # 配置django数据库环境
sudo apt-get install python3-dev default-libmysqlclient-dev # 上面的不成功就用这个

sudo pip3 install mysqlclient

sudo pip3 install uwsgi -i https://pypi.tuna.tsinghua.edu.cn/simple/ # 安装uwsgi
sudo pip3 freeze|grep -i ‘uwsgi’ # 查看uwsgi版本

sudo apt install nginx # 安装nginx
nginx -v # 验证安装

项目结构

      myproject文件夹后面有个/Baidu别看漏了
在这里插入图片描述

Django配置

      除了对项目基础的配置配置外,在项目的settings.py中要对以下三项进行配置,第一个上线的话肯定要改成False,ALLOWED_HOSTS就是你的域名,第三个STATIC_ROOT是自己新增的,为了后面nginx加载做准备。前面的 '/home/myproject_static’是随便你自己新建的文件夹的完整路径,文件夹的访问权限给足了,防止因为访问权限的问题出错。

DEBUG = False
ALLOWED_HOSTS = [".baidu.com"]
STATIC_ROOT = ‘/home/myproject_static/static’

      配置好之后执行

python3 manage.py collectstatic

这样就把项目中所有静态文件迁移至/home/myproject_static/static中了

uWSGI配置

      在项目同名文件夹下,就是跟setting.py同级目录下新建一个uwsgi.ini文件。内容如下:

[uwsgi]
;
socket = 127.0.0.1:8000
; 当前工作路径 绝对路径
chdir = /home/myproject/Baidu
; wsgi.py路径,相对 chdir的路径
wsgi-file =Baidu/wsgi.py
; 主要是以上几项不能出错!!!!!!!!!!!!!!
; 进程数
process = 2
; 每个进程的线程数
threads=8
; 服务的pid记录文件
pidfile = uwsgi.pid
; 服务的日志文件开启文件
daemonize = uwsgi.log
; 开启主进程管理模式
master = true

uwsgi的一些操作命令,必须启动,每次修改之后都需要先停止后启动!!!(需要在“/home/myproject/Baidu/Baidu”路径下)

uwsgi --ini uwsgi.ini # 启动
uwsgi --stop uwsgi.pid # 停止
ps aux|grep ‘uwsgi’ # 查看进程

Nginx配置

这里参照腾讯云的文档,我ubuntu是改的下面这个文件,没试它的,但配置内容是一样的。

sudo vim /etc/nginx/sites-enabled/default

配置完成之后重启nginx

sudo /etc/init.d/nginx restart

每次修改项目之后都需要 停止uWSGI -> 启动uWSGI -> 重启nginx

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值