Diango博客--19.使用 Docker部署项目到线上服务器

文章目录

  • 1.克隆代码到服务器
  • 2.创建环境变量文件用于存放项目敏感信息
  • 3.在 .production 文件写入下面的内容并保存
  • 4.修改 Nginx 配置
  • 5.修改项目配置文件
  • 6.启动容器
  • 7.检查容器启动状况
  • 8.配置 HTTPS 证书(没有配置域名无法配置,只能通过服务器 ip 以 HTTP 协议访问)
  • 9.使用Faker 批量生成测试数据
  • 10.浏览器访问域名或者服务器 ip 即可进入博客首页

1.克隆代码到服务器

$ git clone https://github.com/HelloGitHub-Team/HelloDjango-blog-tutorial.git

2.创建环境变量文件用于存放项目敏感信息

$ cd HelloDjango-blog-tutorial
$ mkdir .envs
$ touch .envs/.production

3.在 .production 文件写入下面的内容并保存

# django 用于签名和加密等功能的密钥,泄露会严重降低网站的安全性
# 推荐使用这个工具生成:https://miniwebtool.com/django-secret-key-generator/
DJANGO_SECRET_KEY=0p72%e@r3qr$bq%%&bxj#_bem+na2t^0(#((fom6eewrg)gyb^# 设置 django 启动时加载的配置文件
DJANGO_SETTINGS_MODULE=blogproject.settings.production

4.修改 Nginx 配置

复制 compose/production/nginx/hellodjango-blog-tutorial.conf-tmpl到同一目录,并重命名为 hellodjango-blog-tutorial.conf,修改第 6 行的 server_name 为自己的域名(如果没有域名就改为服务器的公网 ip 地址)。

5.修改项目配置文件

将blogproject/settings/production.py中的ALLOWED_HOSTS改为自己的域名。

ALLOWED_HOSTS = ['hellodjango-blog-tutorial-demo.zmrenwu.com']

6.启动容器

$ docker-compose -f production.yml up --build -d

7.检查容器启动状况

执行 docker ps 检查容器启动状况,看到如下的 3 个容器说明启动成功:

hellodjango_blog_tutorial_nginx
hellodjango_blog_tutorial_elasticsearch
hellodjango_blog_tutorial

8.配置 HTTPS 证书(没有配置域名无法配置,只能通过服务器 ip 以 HTTP 协议访问)

$ docker exec -it hellodjango_blog_tutorial_nginx certbot --nginx -n --agree-tos --redirect --email email@hellodjango.com -d hellodjango-blog-tutorial-demo.zmrenwu.com

解释一下各参数的含义:
–nginx,使用 Nginx 插件
-n 非交互式,否则会弹出询问框
–redirect,自动配置 Nginx,将所有 http 请求都重定向到 https
–email xxx@xxx.com,替换为自己的 email,用于接收通知
-d 域名列表,开启 https 的域名,替换为自己的域名,多个域名用逗号分隔

9.使用Faker 批量生成测试数据

docker exec -it hellodjango_blog_tutorial python -m scripts.fake

10.浏览器访问域名或者服务器 ip 即可进入博客首页

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/452141.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从一生的角度看程序员的学习和发展

很多人谈学习和发展的时候,往往忽略人的先天自然条件,在这里我们从这个视角切入,来探讨一下程序员一生的可能轨迹。 如果把程序员的人生分为三个阶段,那么他们是: 毕业~30岁:这个时间段里,大多…

Jquery Datatable 数据填充报错:requested unknown parameter ‘XXX‘ for row xx, column xx 解决方法

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 报错如图: 解决方法见官网:https://datatables.net/manual/tech-notes/4 摘要如下: Parameter is an…

Tarjan-缩点

$Tarjan$缩点 Tarjan的第二个应用就是求缩点啦。缩点虽然比割点麻烦一点,但是用处也比割点要大不少。 本来要学另外两个缩点算法的,但是似乎没什么用...$MST$里确实有只能有$prim$或者只能用$kruscal$的题目,但是这三种缩点...在网上没有找到介绍它们之间…

mysqldump参数详细说明(转)

Mysqldump参数大全(参数来源于mysql5.5.19源码) 参数 参数说明 --all-databases , -A 导出全部数据库。 mysqldump -uroot -p --all-databases --all-tablespaces , -Y 导出全部表空间。 mysqldump -uroot -p --all-databases --all-tablespaces --n…

Diango博客--20.开启 Django 博客的 RSS 功能

1.Rss简介 博客提供 RSS 订阅应该是标配,这样读者就可以通过一些聚合阅读工具订阅你的博客,时时查看是否有文章更新,而不必每次都跳转到博客上来查看。现在我们就来为博客添加 RSS 订阅功能。 RSS(Really Simple Syndication&am…

什么是P2P

P2P技术又称为点对点传输技术。举个简单的例子,以便可以更好的理解。比如,以前我们要下载一个文件,我们一定要从服务器下载。有了P2P技术之后,我们可以向其它下载过这个文件的电脑获取这个文件,我下载完成了这个文件之…

SQL语句使用大全,最常用的sql语句

下列语句部分是Mssql语句,不可以在access中使用. SQL分类: DDL—数据定义语言(Create,Alter,Drop,DECLARE) DML—数据操纵语言(Select,Delete,Update,Insert) DCL—数据控制语言(…

Oracle 的 SQL语句中 decode()函数

decode()函数简介: 主要作用:将查询结果翻译成其他值(即以其他形式表现出来,以下举例说明); 使用方法: Select decode(columnname,值1,翻译值1,值2,翻译值2,...值n,翻译值…

百度王一男: DevOps 的前提是拆掉业务-开发-测试-运维中间的三面墙

这是一个创建于 375 天前的主题,其中的信息可能已经有所发展或是发生改变。由数人云、优维科技、中生代社区联合发起的 系列 Meetup 《 DevOps&SRE 超越传统运维之道》 先后在深圳、北京举行过两场 7 月 15 日上海站,敬请期待 ▼ 王一男老师在《 Dev…

linux上mongodb的安装与卸载

安装 1.下载安装包 wget http://fastdl.mongodb.org/linux/mongodb-linux-i686-1.8.2.tgz 下载完成后解压缩压缩包 tar zxf mongodb-linux-i686-1.8.2.tgz 2. 安装准备 将mongodb移动到/usr/local/server/mongdb文件夹 mv mongodb-linux-i686-1.8.2 /usr/local/mongodb 创建数据…

面向对象设计的准则

1.模块化 对象就是模块 把数据结构和操作这些数据的方法紧密地结合在一起 2.抽象 过程抽象 数据抽象:类 参数化抽象:C的“模板” 3.信息隐藏 通过对象的封装性实现类,分离了接口与实现,支持信息隐藏 4.弱耦合 某一部分的…

Linux触发连锁反应,惠及全球

所谓“连锁反应”是指,若干个相关的事物,只要一个发生变化,其他都跟着发生变化。在软件界的“圈子”里面,一般而言,“连锁反应”这个词汇是不经常使用的。 4月21日,芬兰科学院把2012年最高技术成就奖授予Li…

Diango博客--21.实现简单的全文搜索

文章目录1. 概述2. 模板:将关键词提交给服务器3. 视图:查找含有搜索关键词的文章4. 视图:绑定 URL1. 概述 搜索是一个复杂的功能,但对于一些简单的搜索任务,我们可以使用 Django Model 层提供的一些内置方法来完成&am…

解决Cannot change version of project facet Dynamic web module to 2.5

见 : http://blog.csdn.net/steveguoshao/article/details/38414145 我们用Eclipse创建Maven结构的web项目的时候选择了Artifact Id为maven-artchetype-webapp,由于这个catalog比较老,用的servlet还是2.3的,而一般现在至少都是2.5…

shell编程 之 test命令

shell编程里的测试test命令基本可以分为3种数据类型,每种都不一样。个人更倾向于理解为条件语句的写法规则,就是test加条件加判断语句。 1 数值类型 基本可以分为6个判断:-eq等于,-ne不等于,-gt大于,-lt小于&#xff0…

HTTP 协议知识点总结(一)

在许多大公司的面试中,经常会重点考察面试者的计算机基础知识。所以对于在计算机网络、数据结构、操作系统上花费更多的时间和精力,是完全值得的。HTTP 作为应用最为广泛的网络协议,不论前端和后端都需要经常接触。最近决定对 HTTP 进行了一些…

阶乘的精确值 大数问题

输入不超过1000的正整数n,输出n的阶乘的精确结果 样例输入:30 样例输出:265252859812191058636308480000000 分析: 为了保存结果,需要分析1000!有多大。用计算器算一算不难知道,1000&#x…

Diango博客--22.Django Haystack 全文检索与关键词高亮

文章目录1. Django Haystack 简介2. 安装 django-haystack和elasticsearch 23. 构建容器来运行 elasticsearch 服务4. 配置 Haystack5. 处理数据6. 配置 URL7. 修改搜索表单8. 创建搜索结果页面9. 高亮关键词10. 建立索引文件11. 修改搜索引擎为中文分词12. 防止标题被截断13. …

Vim和Vi的常用命令

Vim 文本编辑器 1、Vim 和 Vi: 两者都是多模式编辑器; Vim 是 Vi 升级版,再兼容 Vi 所有指令的同时增加了一些新功能支持; 特点: 语法加亮:使用不同的颜色加亮代码; 多级撤销:Vi 只能撤销一次操…