基于 Docker 安装 Nginx 搭建静态服务器

最近一直在准备家里的服务器部署一个自己用的网站玩玩,一来是用来学习部署的线管知识,二来,后面有空学点前端,可以部署到自己网站玩玩。

 

参考链接:https://juejin.cn/post/7057403454473371661

 

docker的安装先跳过了,前面已经写过博客.

 

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. 拷贝容器内配置文件到本地, [将容器内部的配置目录Nginx赋值到用户本地目录下并改名目录名字为conf]

docker container cp Nginx:/etc/Nginx ~/Nginx/conf

3. 删除之前的容器

docker stop Nginx && docker rm Nginx

4. 根据本地配置文件运行新容器

docker run -d -p 80:80 -p 443:443 --name Nginx \
 -v ~/Nginx/conf:/etc/Nginx \
 -v ~/Nginx/logs:/var/log/Nginx \
 -v ~/Nginx/html:/usr/share/Nginx/html \
 Nginx:latest

如果不需要配置ssl证书开启https访问,此时就可以把这个Nginx当作普通静态服务器使用了。

其中~/Nginx中的几个文件夹:

conf目录: Nginx配置文件,具体配置可以看官网

html目录: 放静态资源,如html、css、js

logs目录: 日志文件夹,访问的日志可以在其中查看

改了配置文件,记得通过docker restart Nginx重启下Nginx

 

三、配置 SSL 证书开启 HTTPS 访问[未操作, 后续操作跟新]

2. 把证书解压后上传到证书文件

cd ~/Nginx/conf/conf.d
mkdir cert

把刚才下载的证书上传到这个文件

3. 修改 Nginx 配置开启 HTTPS 访问

vi ~/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是什么Docker是 Docker.Inc 公司开源的一个基于 LXC技...
本文为原创,原始地址为:http://www.cnblogs.com/fengzheng...
镜像操作列出镜像:$ sudo docker imagesREPOSITORY TAG IMA...
本文原创,原文地址为:http://www.cnblogs.com/fengzheng/p...
在 Docker 中,如果你修改了一个容器的内容并希望将这些更改...
在Docker中,--privileged 参数给予容器内的进程几乎相同的权...