IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Django+uWSGI+Nginx 迁移至云服务器+域名+ssl证书配置 -> 正文阅读

[Python知识库]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
; 服务的pip记录文件
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

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-08-26 12:04:23  更:2021-08-26 12:05:39 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 11:38:43-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码