基于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 nginx
mkdir nginx/config
mkdir nginx/data
mkdir nginx/logs
mkdir 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 -