前提条件

  1. 一台云服务器(阿里云、腾讯云等的centOS)
  2. 服务器上面要有docker(安装方法这里不做介绍)
  3. 一个域名
  4. ssl证书(两个文件:一个key后缀,一个pem后缀;生成方法很多这里不再介绍)

下载最新的nginx的docker image

  1. docker pull nginx:latest

创建目录 nginx, 用于存放后面的相关东西

  1. mkdir -p /home/nginx/www /home/nginx/logs /home/nginx/conf

把我们的静态HTML页面放到 /home/nginx/www 文件夹下面;

在创建的 /home/nginx/conf 文件夹下面创建一个叫 nginx.conf 的文件如下:

  1. user nginx;
  2. worker_processes 1;
  3.  
  4. error_log /var/log/nginx/error.log warn;
  5. pid /var/run/nginx.pid;
  6.  
  7. events {
  8. worker_connections 1024;
  9. }
  10.  
  11. http {
  12. include /etc/nginx/mime.types;
  13. default_type application/octet-stream;
  14.  
  15. log_format main '$remote_addr - $remote_user [$time_local] "$request" '
  16. '$status $body_bytes_sent "$http_referer" '
  17. '"$http_user_agent" "$http_x_forwarded_for"';
  18.  
  19. access_log /var/log/nginx/access.log main;
  20.  
  21. sendfile on;
  22. #tcp_nopush on;
  23.  
  24. keepalive_timeout 65;
  25.  
  26. #gzip on;
  27.  
  28. include /etc/nginx/conf.d/*.conf;

  

部署nginx

  1. docker run -d -p 80:80 -p 443:443 --name nginx-server -v /home/nginx/www:/usr/share/nginx/html -v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /home/nginx/logs:/var/log/nginx nginx

  

命令说明:

  • -p 80:80: 将容器的 80 端口映射到主机的 80 端口。

  • -p 443:443: 将容器的 80 端口映射到主机的 443 端口。
  • --name nginx-server:将容器命名为 nginx-server。

  • -v /home/nginx/www:/usr/share/nginx/html:将我们自己创建的 www 目录挂载到容器的 /usr/share/nginx/html。

  • -v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf:将我们自己创建的 nginx.conf 挂载到容器的 /etc/nginx/nginx.conf。

  • -v /home/nginx/logs:/var/log/nginx:将我们自己创建的 logs 挂载到容器的 /var/log/nginx。

启动之后便可以通过域名访问到我们的HTML页面了,但是还没完

修改nginx.conf

在我们刚刚创建的 nginx.conf 文件里面插入以下内容:(注意先不要重启)

  1. server {
  2. listen 443 ssl;
  3. server_name fightingtop.cn www.fightingtop.cn;
  4. root /usr/share/nginx/html;
  5. ssl_certificate /ssl/certificate.pem;
  6. ssl_certificate_key /ssl/2832429_fightingtop.cn.key;
  7. ssl_session_timeout 5m;
  8. ssl_session_cache shared:SSL:1m;
  9. ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:aNULL:!MD5:!ADH:!RC4;
  10. ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  11. ssl_prefer_server_ciphers on;
  12.  
  13. location / {
  14. root /usr/share/nginx/html;
  15. index index.html index.htm;
  16. }
  17. }
  18.  
  19. server {
  20. listen 80;
  21. server_name fightingtop.cn www.fightingtop.cn;
  22. rewrite ^ https://$host$1 permanent;
  23. }

将两个证书文件拷贝到nginx容器

先进入nginx容器在根目录创建一个ssl文件夹,用来放证书

  1. docker exec -it aa5badebd38a /bin/bash
    cd /
    mkdir ssl

开始拷贝证书

  1. docker cp /home/ssl/certificate.key aa5badebd38a:/ssl/
  1. docker cp /home/ssl/certificate.pem aa5badebd38a:/ssl/

大功告成啦,重启完事!

docker启动nginx的ssl配置的更多相关文章

  1. Docker 启动 Nginx

    Docker 启动 Nginx 拉取镜像 docker pull nginx:1.17.9 启动步骤 # 创建 nginx 目录 mkdir -p /usr/local/nginx && ...

  2. docker 启动 nginx 访问不了的问题

    使用版本:nginx version: nginx/1.13.8 正使用docker启动nginx容器的时候,一切都很正常,容器也起来了 docker run -dit -p 80:80 --name ...

  3. Docker中Nginx服务器相关配置

    工作中经常需要在服务器上来做一下实验,亲自动手看看效果是否与理论描述的相同.用docker可以很方便的配置所需要的环境,以下内容记录了如何用docker配置一个nginx服务器 下载nginx 从默认 ...

  4. linux下docker启动nginx无法访问80端口

    问题: Linux安装了docker,docker启动了一个nginx容器,通过 80 端口无法正常访问 故障排查: 1.检查 nginx 容器启动的命令或者yaml文件,查看是否有跟本机端口进行绑定 ...

  5. docker使用nginx实现ssl(https)反向代理其他容器应用

    安装nginx容器 搜索nginx镜像 docker search nginx 拉取最新版nginx docker pull nginx:latest 运行容器 docker run --name=n ...

  6. Docker 安装 Nginx 负载均衡配置

    Docker 安装 # 1)安装依赖包 yum install -y yum-utils device-mapper-persistent-data lvm2 # 2)添加Docker软件包源(否则d ...

  7. Docker容器Nginx负载均衡配置、check及stub模块安装

    Nginx是一款高性能的HTTP和反向代理.负载均衡web服务器.本次在Docker容器中部署三个tomcat,Nginx代理三个tomcat服务(以下称节点)来模拟实现负载均衡效果,配置check模 ...

  8. docker 启动 nginx 服务

    docker run -d -p 80:80 --restart=always nginx:latest 参数说明: run 启动某个镜像 -d 让容器在后台运行 -p 指定端口映射,宿主机的80端口 ...

  9. Docker学习笔记--Docker 启动nginx实例挂载目录权限不够(转)

    今天在启动一个docker 运行nginx实例,在挂载目录时,出现访问静态目录时,权限不够 执行的命令是: docker run --name my-nginx -d -p 80:80 --resta ...

随机推荐

  1. 多个github账号时,本地配置ssh-key

    由于需要,申请了多个github账号,但是都是在同一台电脑上操作,原来只有一个账号进行ssh操作时,推送没有遇到什么问题,现在有多个账号了,推送的时候就有点懵逼了,下面是根据网上的资料来进行多个账号, ...

  2. NSCTF-Reverse02 超级详细且简单的办法搞定

    没有壳 VC写的 观察界面 一个编辑框 一个按钮 拖进IDA 在导入表里找到GetDlgItemTextA 为什么找这个函数 因为这个函数的作用就是 获取我们输入编辑框的内容 双击进入 ctrl+X ...

  3. 11、python模块的导入

    前言:本文主要介绍python模块的导入,包括模块的定义.模块的作用.导入方式以及模块的搜索路径. 一.模块的定义 python模块(module),简单来说就是一个python文件,以.py结尾,文 ...

  4. Ubuntu中部署Django项目的配置与链接MySQL

    Django的简介 MVT模式的介绍创建项目的虚拟环境 本次使用的是pip安装 一.更新 sudo apt update 二.安装pip sudo apt install python3-pip 三. ...

  5. python接口自动化测试 - configparser配置文件解析器详细使用

    configparser简介 ConfigParser模块已在Python 3中重命名为configparser 该模块定义了ConfigParser类. ConfigParser类实现一种基本的配置 ...

  6. Client API Object Model - Grid Context(3.3)

    Grids 网格,以表格的形式显示数据, 网格可以跨越整个form,也可以是form中的一项. 被称为子网格(subgrid). grid有两种, 一种是read-only grid, 另一种是edi ...

  7. 谈谈 InnoDB引擎中的一些索引策略

    如果我们在工作能够更好的利用好索引,那将会极大的提升数据库的性能. 覆盖索引 覆盖索引是指在普通索引树中可以得到查询的结果,不需要在回到主键索引树中再次搜索 建立如下这张表来演示覆盖索引: creat ...

  8. PPT制作简易套路指南

    最近正在重做公众号相关的一些设计以及排版,想到年前部门里的UI设计大神做了一个关于"PPT设计指南"的分享,正好可以拿来实践一把. 一直以来,PPT.Word.Excel都是办公人 ...

  9. 缓存 ehcache

    只是用于自己记录,防止日后忘记,回看所用 第一步:配置ehcahe 缓存 <?xml version="1.0" encoding="UTF-8"?> ...

  10. 关于Windows Server 服务器 安装tomcat部署Java Web 项目的问题

    我遇到的问题是:不知道怎么配置,感觉在服务器上部署一个web项目,应该是很高大上,步骤应该很繁琐,但是,事实却不是那样.配置反而挺简单. tomcat配置:在tomcat安装目录中的conf文件夹下有 ...