当前位置: 首页 > article >正文

docker部署nginx,并配置SSL证书

、拉取nginx镜像

docker pull nginx:latest

在此过程中会遇到网络的问题,导致镜像无法下载,这时候需要在服务器中配置下国内的镜像地址。下面包含近期最新的国内镜像,截至2024年11月27日:

"https://<你的阿里云账号ID>.mirror.aliyuncs.com",
"https://docker.m.daocloud.io",
"https://docker.mirrors.ustc.edu.cn",
"https://<你的华为云账号>.mirror.swr.myhuaweicloud.com",
"https://docker.hpcloud.cloud",
"https://docker.m.daocloud.io",
"https://docker.unsee.tech",
"https://docker.1panel.live",
"http://mirrors.ustc.edu.cn",
"https://docker.chenby.cn",
"http://mirror.azure.cn",
"https://dockerpull.org",
"https://dockerhub.icu",
"https://hub.rat.dev"

然后在该目录下面创建进行镜像地址
sudo vim /etc/docker/daemon.json
配置项如下(可以多加几个,避免失效):

{
  "registry-mirrors": [
    "https://<你的阿里云账号ID>.mirror.aliyuncs.com",
    "https://docker.m.daocloud.io",
    "https://docker.mirrors.ustc.edu.cn"
    // 可以添加其他镜像源地址
  ]
}

保存后根据下面命令docker重启

sudo systemctl daemon-reload
sudo systemctl restart docker

二、运行nginx容器

1、采用Dockerfile方式

docker run --name [容器名称] -d -p [端口号]:80 -p [端口号]:443 -v /path/to/nginx.conf:/etc/nginx/nginx.conf nginx
  • –name [容器名称]:指定容器名称为[容器名称]。
  • -d:后台运行容器。
  • -p [端口号]:80:将宿主机的 [端口号] 端口映射到容器的80端口。
  • /path/to/nginx.conf:/etc/nginx/nginx.conf 将 /path/to/nginx.conf 将宿主机映射到物理机里面

2、采用docker Compose进行配置

version: '3'

services:
  nginx:
    image: nginx:latest
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./nginx/certs:/etc/nginx/certs
      - ./nginx/conf.d:/etc/nginx/conf.d
      - ./nginx/html:/usr/share/nginx/html
    restart: always
    

volumes 记得一定要配置,这是与外界文件传递的重要参数,例如

  • ./nginx/certs 目录应该包含你的 SSL 证书文件。
  • ./nginx/conf.d 为额外的配置项
  • ./nginx/html 存放资源文件

使用 Docker Compose,运行以下命令启动 Nginx 容器
docker-compose up -d

开启防火墙释放端口,如果是云服务器,记得释放安全端口

sudo firewall-cmd --zone=public --permanent --add-port=PORT/tcp
sudo firewall-cmd --reload

这样子就可以用ip访问具体的地址了

3、域名配置ssl
首先有一个域名并且得到了备案,然后你需要一个证书,我采用的腾讯云的证书,免费的,很香。
在这里插入图片描述
我们只需要下载nginx就可以了
在这里插入图片描述
,然后到nginx里面配置。
在这里发生一个问题,docker配置nginx里面用不了vim命令,所以需要你重新下载相关的vim工具

完成后,在对应的目录配置服务,具体代码如下

server {
    listen 443 ssl;
    server_name your_domain.com;

    ssl_certificate /etc/nginx/certs/domain.crt;
    ssl_certificate_key /etc/nginx/certs/domain.key;

    # 其他 SSL 相关配置...

    location / {
        # 你的 location 块配置...
    }
}

在这里插入图片描述
下面我们可以愉快的使用https,让网站更加的安全。


http://www.kler.cn/a/413366.html

相关文章:

  • 使用flink编写WordCount
  • VsCode 插件推荐(个人常用)
  • <项目代码>YOLOv8 停车场空位识别<目标检测>
  • femor 第三方Emby应用全平台支持v1.0.54更新
  • C++算法练习-day45——236.二叉树的最近公共祖先
  • 网络安全拟态防御技术
  • windows 应用 UI 自动化实战
  • 高级SQL技巧:解锁数据处理与分析的深层能力
  • python除了熟悉的pandas,openpyxl库也很方便的支持编辑Excel表
  • flink学习(5)——预定义source
  • linux安全管理-账号口令
  • 前端八股(自学笔记)分享—页面布局(四)
  • 讨论JAVA、JVM与Spring
  • nextjs+nestjs+prisma写todolist全栈项目
  • LeetCode—53. 最大子数组和(中等)
  • 【C/C++】数据库链接入门教程:从零开始的详细指南!MySQL集成与操作
  • 将自定义 AWS S3 快照存储库连接到 Elastic Cloud
  • zotero安卓测试版下载和使用
  • docker run创建容器如何执行多条命令
  • OpenCV图像基础处理:通道分离与灰度转换
  • 《Vue 初印象:快速上手 Vue 基础语法》
  • CSS笔记(三)卡片选择
  • 简易记事本前端开发(初步)
  • 分布式系统RPC原理面试题及参考答案
  • 解决stuid项目类爆炸问题
  • 矩阵/矩阵乘法/特征值/特征向量的讲解