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,一经查实,立即删除!

相关文章

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$的题目,但是这三种缩点...在网上没有找到介绍它们之间…

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

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

解决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…

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

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

3分钟学会SVN:SVN快速上手

选择SVN客户端 Windows平台 TortoiseSVN:也叫乌龟SVN,Windows上最流行的SVN客户端,安装后你的右键就会多了几个SVN相关的菜单,非常方便Eclipse插件:在Eclipse中集成SVN插件,适合使用Eclipse开发的用户&…

Diango博客--23.单元测试:测试 blog 应用

文章目录1. 前言2. 搭建测试环境3. 测试模型4. 测试视图5. 测试模板标签6. 测试辅助方法和类1. 前言 我们博客功能越来越来完善了,但这也带来了一个问题,我们不敢轻易地修改已有功能的代码了! 我们怎么知道代码修改后带来了预期的效果&…

图片格式转换工具与方法

2019独角兽企业重金招聘Python工程师标准>>> 使用ffmpeg进行格式转换 1.jpg 转 I420 ffmpeg -i 001.jpg -pix_fmt yuv420p 001_I420_fromJPG.yuv 2.png 转 I420 ffmpeg -i 222.png -pix_fmt yuv420p 222_I420_fromPNG.yuv 3.bmp 转 I420 ffmpeg -i xxx.bmp -pix_fmt…

Diango博客--24.单元测试:测试评论应用

文章目录1. 前言2. 数据基类3.测试 Comment Model4. 测试视图函数5. 测试模板标签1. 前言 comments应用的测试和blog应用测试的套路是一样的。 先来建立测试文件的目录结构。首先在 comments 应用的目录下建立一个名为 tests 的 Python 包,然后删除 comments 应用…

结合shiro 的图形验证码生成

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 在做用户登录功能时,很多时候都需要验证码支持,验证码的目的是为了防止机器人模拟真实用户登录而恶意访问&#…

E24- please install the following Perl modules before executing ./mysql_install_db

2019独角兽企业重金招聘Python工程师标准>>> [roott-cet7 scripts]# ./mysql_install_db --basedir/usr/local/mysql/ --datadir/app/data/ --usermysql FATAL ERROR: please install the following Perl modules before executing ./mysql_install_db: Data::Dumpe…

SpringMVC异常报406 (Not Acceptable)的解决办法

使用SpsringMVC&#xff0c;使用restEasy调试&#xff0c;controller请求设置如下&#xff1a; Java代码 RequestMapping(value"/list",methodRequestMethod.GET,producesMediaType.APPLICATION_JSON_VALUE) ResponseBody public List<EditTimeout> list()…

Diango博客--25.使用Coverage统计测试覆盖率

文章目录1. 前言2. 安装 Coverage3. 简单配置 Coverage4. 运行 Coverage5. 完善 Coverage 配置6. 生成 HTML 报告7. 完善单元测试1. 前言 我们完成了对 blog 应用和 comment 应用这两个核心 app 的测试。现在我们想知道的是究竟测试效果怎么样呢&#xff1f;测试充分吗&#x…

Android动画之逐帧动画(FrameAnimation)详解

今天我们就来学习逐帧动画,废话少说直接上效果图如下: 帧动画的实现方式有两种&#xff1a; 一、在res/drawable文件夹下新建animation-list的XML实现帧动画 1、首先在res/drawable文件夹下添加img00-img24共25张图片 2、新建frame_anim.xml [html] view plaincopy <?xml v…

网络爬虫--1.通用爬虫和聚焦爬虫

文章目录一.前言二.通用爬虫1.工作原理2.通用爬虫的局限性三.聚焦爬虫一.前言 根据使用场景&#xff0c;网络爬虫可分为 通用爬虫 和 聚焦爬虫 两种。 其中通用网络爬虫是捜索引擎抓取系统&#xff08;Baidu、Google、Yahoo等&#xff09;的重要组成部分。主要目的是将互联网…

敏捷教练的工具箱

学习并不是简简单单的阅读和浏览&#xff0c;而是一个积累的过程&#xff0c;一个通过持续的学习&#xff0c;对自己的知识体系不断丰富、索引的过程。接下来我会从四个方面入手分享我的经验。 高质量的信息源和高效的学习 Google是一个很好的工具&#xff0c;通过它&#x…

python 发送邮件的两种方式【终极篇】

python 发送邮件的两种方式【终极篇】 一&#xff0c;利用python自带的库 smtplib简单高效 from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText from email.header import Header import smtplib from django.conf import settingsmail_hos…

网络爬虫--2.HTTP和HTTPS

文章目录一.简介二.HTTP的请求与响应三.客户端HTTP请求1.格式2.请求方法四.常用的请求报头1.Host (主机和端口号)2.Connection (链接类型)3.Upgrade-Insecure-Requests (升级为HTTPS请求)4. User-Agent (浏览器名称)5. Accept (传输文件类型)6.Referer (页面跳转处)7.Accept-En…

IBM王阳:软件是凝聚创新力的最佳平台

导读&#xff1a;在IBM全球副总裁兼IBM中国开发中心总经理王阳博士看来&#xff0c;IBM百年不衰的根本原因在于将创新力凝结成软件然后进行合适的传播&#xff0c;其间最重要的是成功打造出了一个吸引人才、培养研发人才并激发出人才创新力的环境和氛围。而保持创新领导力的关键…