基于 Docker 安装 Nginx 搭建静态服务器,并配置 SSL 证书开启 HTTPS 访问
在服务器使用中,使用nginx作为静态服务器是很常见的情况,该篇文章主要就是讲通过docker安装管理我们的nginx,并配置ssl证书来开启HTTPS访问~
在服务器使用中,使用
nginx
作为静态服务器是很常见的情况,该篇文章主要就是讲通过docker
安装管理我们的nginx
,并配置ssl
证书来开启HTTPS
访问~
大家需要一台服务器,静态服务器配置需求不算很高,推荐1核2G
及以上。
一、安装 Docker
linux
服务器使用curl
下载快速安装的shell
脚本
curl -fsSL get.docker.com -o get-docker.sh
下载完成后,可以ls
命令查看一下。已经存在的话,使用sh
命令执行这个脚本
sh get-docker.sh
注意如果不是root
用户,需要使用sudo su
获取超级管理员权限。
安装完成后启动一下Docker Server
systemctl start docker
使用docker version
命令能看到Client
和Server
就启动成功了。
二、使用 Docker 安装 Nginx
1. 先运行一次 nginx,为了拷贝容器内配置文件到本地
docker run -d -p 80:80 --name nginx \
-v /home/nginx/html:/usr/share/nginx/html \
-v /home/nginx/logs:/var/log/nginx \
nginx:latest
2. 拷贝容器内配置文件到本地
docker container cp nginx:/etc/nginx /home/nginx/
cd /home/nginx
mv nginx conf
3. 删除之前的容器
docker stop nginx
docker rm nginx
4. 根据本地配置文件运行新容器
docker run -d -p 80:80 -p 443:443 --name nginx \
-v /home/nginx/conf:/etc/nginx \
-v /home/nginx/logs:/var/log/nginx \
-v /home/nginx/html:/usr/share/nginx/html \
nginx:latest
如果不需要配置ssl
证书开启https
访问,此时就可以把这个nginx
当作普通静态服务器使用了。
其中/home/nginx
中的几个文件夹:
conf
: nginx
的配置文件,具体配置可以看官网
html
: 放静态资源,如html、css、js
等
logs
: 日志文件夹,访问的日志可以在其中查看
改了配置文件,记得通过docker restart nginx
重启下nginx
。
三、配置 SSL 证书开启 HTTPS 访问
1. 在云服务厂商申请 SSL 证书
我是在腾讯云
申请的SSL
证书,提交申请资料了,会让配置一个txt
类型的域名解析,然后等待通过就行。
申请通过后,下载nginx
服务器类型的证书。
2. 把证书解压后上传到证书文件夹
在conf/conf.d
创建cert
证书文件夹
cd /home/nginx/conf/conf.d
mkdir cert
把刚才下载的证书上传到这个文件夹
3. 修改 nginx 配置开启 HTTPS 访问
vi /home/nginx/conf/conf.d/default.conf
写入以下内容
server {
#SSL 访问端口号为 443
listen 443 ssl;
#填写绑定证书的域名
server_name 0101.ml;
#证书文件名称
ssl_certificate /etc/nginx/conf.d/cert/0101.ml_bundle.pem;
#私钥文件名称
ssl_certificate_key /etc/nginx/conf.d/cert/0101.ml.key;
ssl_session_timeout 5m;
#请按照以下协议配置
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
#请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
location / {
#网站主页路径。此路径仅供参考,具体请您按照实际目录操作。
root /usr/share/nginx/html;
index index.html index.htm;
}
}
server {
listen 80;
#填写绑定证书的域名
server_name falser.top;
#把http的域名请求转成https
return 301 https://$host$request_uri;
}
需要改的地方:
server_name
: 改为自己的域名(两处)
ssl_certificate
: .crt
后缀的证书文件
ssl_certificate_key
: .key
后缀的证书私钥文件
到此,我们通过
Docker
安装了nginx
作为我们的静态服务器,并配置了SSL
证书开启了HTTPS
访问,如果各位小伙伴还有什么问题,可以私信我或者下面评论区留言哦。
最后推荐一下我的前端工程相关的其他文章
基于 Docker ( Gitlab、Gitlab Runner ) 搭建一整套自动化CI、CD流程,完成从代码提交到自动打包编译到自动部署运行
更多推荐
所有评论(0)