基于docker启动nginxssl配置_docker

来源:脚本之家  责任编辑:小易  

前提条件

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

下载最新的nginx的docker image

docker pull nginx:latest

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

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

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

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

user nginx;
worker_processes 1;
 
error_log /var/log/nginx/error.log warn;
pid    /var/run/nginx.pid;
 
 
events {
  worker_connections 1024;
}
 
 
http {
  include    /etc/nginx/mime.types;
  default_type application/octet-stream;
 
  log_format main '$remote_addr - $remote_user [$time_local] "$request" '
           '$status $body_bytes_sent "$http_referer" '
           '"$http_user_agent" "$http_x_forwarded_for"';
 
  access_log /var/log/nginx/access.log main;
 
  sendfile    on;
  #tcp_nopush   on;
 
  keepalive_timeout 65;
 
  #gzip on;
 
  include /etc/nginx/conf.d/*.conf;

部署nginx

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 文件里面插入以下内容:(注意先不要重启)

server {
  listen    443 ssl;
  server_name fightingtop.cn www.fightingtop.cn;
  root     /usr/share/nginx/html;
  ssl_certificate   /ssl/certificate.pem;
  ssl_certificate_key /ssl/2832429_fightingtop.cn.key;
  ssl_session_timeout 5m;
  ssl_session_cache  shared:SSL:1m;
  ssl_ciphers     ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:aNULL:!MD5:!ADH:!RC4;
  ssl_protocols    TLSv1 TLSv1.1 TLSv1.2;
  ssl_prefer_server_ciphers on;
 
  location / {
    root  /usr/share/nginx/html;
    index index.html index.htm;
  }
}
 
server {
  listen 80;
  server_name fightingtop.cn www.fightingtop.cn;
  rewrite ^ https://$host$1 permanent;
}

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

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

docker exec -it aa5badebd38a /bin/bash<br data-filtered="filtered">cd /<br data-filtered="filtered">mkdir ssl

开始拷贝证书

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

大功告成啦,重启完事!


  • 本文相关:
  • docker入门安装教程(小白篇)
  • docker搭建php+nginx+swoole+mysql+redis环境的方法
  • docker部署rabbitmq容器实现过程解析
  • docker安装mysql8的方法步骤
  • 详解基于docker的服务部署流程
  • docker 教程之基本概念(镜像,容器,仓库)详解
  • 把数据库部署在docker容器内有哪些缺陷
  • 详解docker容器分配静态ip
  • 怎样获取docker动态分配的port
  • docker运行容器远程挂载卷的方法
  • docker 怎么配置nginx 文件路径
  • docker 怎么配置nginx 文件路径
  • 如何挂在外部的配置文件到docker中的nginx
  • 用docker启动nginx影响性能吗
  • 如何对 docker 容器里的 nginx 进行热更新
  • docker nginx 容器怎么reload
  • 如何访问docker中的nginx
  • 如何制作docker nginx镜像
  • nginx docker怎么配置
  • docker创建nginx容器,为什么不能共享nginx.conf文件
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全dockerhyper-vvmwarevirtualboxxenserverkvmqemuopenvzxencloudstackopenstack云计算技术云其它首页服务器云和虚拟化开启ocsp提升https证书验证效率解决let’s encrypt ssl证书访问慢的问题java读取openssl生成的pem公钥文件操作解决python3.7.0 ssl低版本导致pip无法使用问题python pip install之ssl异常处理操作利用c#实现sslsocket加密通讯的方法详解openssl实现双向认证教程(附服务端客户端代码)如何通过python3和ssl实现加密通信功能python基于qq邮箱实现ssl发送jupyter notebook 远程配置及ssl加密教程docker入门安装教程(小白篇)docker搭建php+nginx+swoole+mysql+redis环境的方法docker部署rabbitmq容器实现过程解析docker安装mysql8的方法步骤详解基于docker的服务部署流程docker 教程之基本概念(镜像,容器,仓库)详解把数据库部署在docker容器内有哪些缺陷详解docker容器分配静态ip怎样获取docker动态分配的portdocker运行容器远程挂载卷的方法docker 给运行中的容器设置端口映docker获取镜像报错docker: errodocker 清理命令集锦docker.service启动失败:unit nubuntu14.04+docker的安装及使用浅谈docker-compose网络设置之nedocker容器如何优雅的终止详解docker容器访问宿主机网络的方法centos7 安装docker 解决启动不了详解docker国内镜像拉取和镜像加重启docker服务应用自启停命令(推荐)dockerfile制作apache镜像的方法alpine镜像中telnet转移至busybox-extrasdocker compose自定义网络实现固定容器ipdocker 部署go的两种基础镜像的实现docker machine是什么?基于alpine用dockerfile创建的爬虫scrapy一次centos docker网桥模式无法访问宿主机docker下mysql设置字符集的方法docker 教程之基本概念(镜像,容器,仓库
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved