社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  docker

【5分钟教程】docker 搭建nginx并配置https

JAVA葵花宝典 • 4 年前 • 426 次点击  

基于docker得教程以前也发过不少,但是结合技术解决实际问题才是我们需要关注得。Docker如此方便,跟宝典哥一起解锁新姿势。

读完本文,你能学到得技能有:

  • 为什么要替换http为https?
  • 如何申请免费的https证书 ?
  • https证书都长什么样子?什么场景使用?
  • 怎么将域名解析到服务器?
  • 基于Docker的nginx安装和使用
  • 通过nginx配置访问http域名
  • 通过nginx配置访问https域名

为什么要替换http为https?

概括得说,为了更安全。

http协议传输的数据都是未加密的,隐私信息极不安全,做程序员得都喜欢搞个个人博客网站,那是不是你使用不加密得域名对你没有什么影响呢?不是,你不改变,不代表别人不会推着你改变,比如谷歌浏览器都http就极不友好,另外,百度爬虫https网站得收录优先级会比http更高,诸如此类,另外,https是互联网产品基本都是必上一套安全门槛,因为系统或者网站不安全导致公司损失惨重以及破产得比比皆是。

如何申请免费得https证书 ?

渠道很多,本文仅以阿里云和腾讯云举例!通过入口直接申请就行了,申请简单,通过快速

阿里云

地址:https://www.aliyun.com

阿里云入口如下:

腾讯云

地址:https://cloud.tencent.com

腾讯云入口如下:

https证书都长什么样子?什么场景使用?

以从腾讯云下载下来的证书为例。目录如下

证书可以配置在nginx端、Apache端、TomCat端等,我们今天的教程是在nginx上配置,所以看Nginx的就行了

可以看到,里面分别有.crt以及.key后缀格式的文件.

CRT 即 certificate的缩写,即证书

.key文件在这里指私钥

怎么将域名解析到服务器?

通俗的讲,就是将域名解析到你服务器的公网ip,一般关注主机记录、记录类型以及记录值即可,这样别人通过访问域名就能将请求直达到你的服务器。

基于Docker的nginx安装和使用

域名解析完了就能通过访问域名直达你的服务器具体应用吗?No,你还需要进行一些配置,对请求进行监听和分发,这就轮到我们今天的主角nginx出场了。

nginx的安装

首先拉取镜像,默认拉取最新的

docker pull

拉取完成查看镜像

docker images

那么镜像拉取完成之后我们就要开始通过镜像创建容器了。我们希望将容器的配置文件以及证书、日志相关映射到宿主机器上,方便查看和操作.

首先,在宿主机器上创建相关的目录

mkdir nginxmkdir nginx/configmkdir nginx/datamkdir nginx/logsmkdir nginx/ssl

进入nginx目录,

cd nginx

创建并启动容器

docker run       --name my-nginx         -p 443:443        -p 80:80         -v $PWD/data:/usr/share/nginx/html        -v $PWD/config/nginx.conf:/etc/nginx/nginx.conf/       -v $PWD/logs:/var/log/nginx/       -v $PWD/ssl:/etc/nginx/ssl/      -d nginx

相关命令说明

  • --name 容器名称
  • -p 宿主机和容器的端口映射
  • -v 宿主机和容器的目录挂载
  • $PWD 学过linux的都知道,代表当前目录

通过nginx配置访问http域名

首先,配置一个upstream,负责对内容进行转发,随后再配置一个Server,代表一个网站,以我的博客为例 我的配置是这样 监听的端口是80很简单就配置完成,通过docker restart my-nginx重启nginx访问查看效果!

看到域名旁边的提示没?一个感叹号:不安全

通过nginx配置访问https域名

既然网站被浏览器提示为不安全,那我们就来解决这个问题,将之前申请好的证书和密钥上传到服务器nginx/ssl目录,然后我们对配置文件进行配置。新增一个server,监听443端口,并新增一些ssl相关的配置,如证书和密钥的位置。配置完成如下

通过docker restart my-nginx重启nginx并再次访问网站,验证配置结果

我们看到,访问成功,之前的不安全提示也消失了。nice!那么本文就到这里了,欢迎关注,带你解锁更多技术姿势!

- End -

Docker入门


基于win10+Docker+idea的SpringBoot项目容器化部署


使用windows版Docker并在IntelliJ IDEA使用Docker运行Spring Cloud项目


【实战原创】SpringBoot应用docker化并发布到远程服务器

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/52482
 
426 次点击