文章目录

  • 一、准备SSL证书
  • 二、下载最新nginx镜像
  • 三、新建几个目录,把nginx容器内的配置文件挂载到主机上
  • 四、启动一个nginx临时容器,把配置文件复制过来,然后删除
  • 五、把SSL证书上传到服务器
  • 六、修改nginx.conf配置文件,配置SSL证书
  • 七、正式启动nginx
  • 八、检查nginx是否成功启动
  • 九、访问失败?

一、准备SSL证书

腾讯云申请

阿里云申请

还有一步DNS验证,因为我这边已经申请了证书,不好演示了。也挺简单的,按照教程来就行了,在域名解析里面加一条DNS解析记录,然后点击验证,通过了,就申请成功了,然后下载nginx版本的证书压缩包,解压上传到服务器就可以了

*稍微需要注意下,腾讯云和阿里云的证书文件后缀有点不一样,腾讯云是xx.crt和xx.key,阿里云是xx.pem和xx.key,都可以正常使用

二、下载最新nginx镜像

docker pull nginx

三、新建几个目录,把nginx容器内的配置文件挂载到主机上

mkdir -p /usr/local/nginx/{conf,html,logs,ssl}

这一步的目的是:1方便后期修改配置文件 2容器删除后配置文件也会删除,相当于多了个备份

四、启动一个nginx临时容器,把配置文件复制过来,然后删除

#启动一个nginx容器
docker run --name nginx -p 80:80 -d nginx
#复制配置文件
docker cp nginx:/etc/nginx/nginx.conf /usr/local/nginx/conf/
docker cp nginx:/etc/nginx/conf.d /usr/local/nginx
#复制完了,可以把这个容器删了,先停止再删除
docker stop nginx
docker rm nginx

这一步是为了获得正确的nginx配置文件格式

五、把SSL证书上传到服务器

#上传到这个目录下面,ssl是我们刚才创建的目录
/usr/local/nginx/ssl

六、修改nginx.conf配置文件,配置SSL证书

server {listen 80;#填写绑定证书的域名server_name _;#把http的域名请求转成https,相当于用户访问http也可以自动跳转到https,避免出现网页提示不安全return 301 https://$host$request_uri;
}server {listen  443 ssl;server_name  _; #证书文件名称ssl_certificate_key /etc/nginx/ssl/xx.key;#私钥文件名称 .crt和.pem都可以用ssl_certificate /etc/nginx/ssl/xx.pem; ssl_session_timeout 5m;ssl_protocols TLSv1 TLSv1.1 TLSv1.2;ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;ssl_prefer_server_ciphers on;root         /usr/local/nginx/html;# Load configuration files for the default server block.include /etc/nginx/default.d/*.conf;#首页location / {index index.php index.html index.htm;client_max_body_size  50m;#limit_rate 100k; 限制下载速度include fastcgi_params; #rewrite ^.*$ /index.php$request_uri break;#ThinkPhp访问异常可以用下面的代码if (!-e $request_filename) {rewrite  ^(.*)$  /index.php?s=/$1  last;break;}fastcgi_pass 127.0.0.1:9000;fastcgi_index index.php;fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;}
}

*注意:虽然证书存放位置是/usr/local/nginx/ssl,但是配置里面要写/etc/nginx/ssl而不是/usr/local/nginx/ssl,不然启动会报错,因为配置里面的绝对路径,都是在nginx容器里面的地址,和主机里面的目录地址是两个东西,后面启动目录挂载的时候,是可以读到证书的,不用担心。

七、正式启动nginx

docker run --name nginx -p 80:80 -p 443:443 \
-v /usr/local/nginx/html:/usr/share/nginx/html \
-v /usr/local/nginx/conf/nginx.conf:/etc/nginx/nginx.conf/ \
-v /usr/local/nginx/conf.d:/etc/nginx/conf.d/ \
-v /usr/local/nginx/logs:/var/log/nginx \
-v /usr/local/nginx/ssl:/etc/nginx/ssl \
--privileged=true -d --restart=always nginx
--name nginx //容器名称
-p 80:80 -p 443:443 //将容器的80端口映射到服务器的80端口,将容器的443端口映射到服务器的443端口
-v aa:bb //将主机的aa目录挂载到容器的bb
--privileged=true //使用该参数,container内的root拥有真正的root权限,避免后面操作时提示无权限
--restart=always //能够使我们在重启docker时,自动启动相关容器

八、检查nginx是否成功启动


up运行中


访问服务器,提示这个,就是成功启动了

九、访问失败?

#看下nginx日志,有没有报错
docker logs nginx

检查下服务器的80/443端口都打开吗?看下服务器安全组里面开了吗?还有问题可以评论留言

docker安装nginx并配置ssl证书相关推荐

  1. docker安装nginx并配置SSL到个人博客

    1 准备 1.已安装好docker环境 2.已申请好域名 2 申请SSL证书 我使用的是腾讯云,申请免费的TrustAsia的SSL证书,阿里云等或者其他平台一般都会提供TrustAsia的SSL证书 ...

  2. docker安装nginx,配置nginx,并成功访问

    [Nginx那些事]系列 [Nginx那些事]nginx 安装及常用指令 [Nginx那些事]Nginx 配置文件说明 [Nginx那些事]nginx原理解析 [Nginx那些事]nginx配置实例( ...

  3. Nginx 下配置SSL证书的方法

    1.Nginx 配置 ssl 模块  默认 Nginx 是没有 ssl 模块的,而我的 VPS 默认装的是 Nginx 0.7.63 ,顺带把 Nginx 升级到 0.7.64 并且 配置 ssl 模 ...

  4. Linux安装nginx并配置ssl

    在linux下安装nginx,首先需要安装 gcc-c++编译器.然后安装nginx依赖的pcre和zlib包.最后安装nginx即可. 1.先安装gcc-c++编译器 yum install gcc ...

  5. 使用Docker安装Nginx并配置端口转发

    使用docker安装并运行nginx命令: docker run --name=nginx -p 80:80 -d docker.io/nginx 使用命令: docker exec -it ngin ...

  6. Nginx配置SSL证书——采用腾讯云SSL证书配置Nginx使用https访问

    一.引言 又是新的一周,小编在工作之余抽空写写博客.最近一直在写关于Nginx教学的博客,今天我们来讲讲这个Nginx怎么配置SSL证书,也就是通过https进行访问. 为什么我们要配置这个SSL证书 ...

  7. Spring Boot项目配置ssl证书及自定义ssl端口号

    好吧,一切不带s的http裸奔都是耍流氓. 我们知道在一个Web服务器(e.g. Tomcat, Websphere, Nginx)上配置ssl证书很容易,那么如何在SpringBoot这种内嵌了服务 ...

  8. Nginx安装ssl模块和配置ssl证书

    ssl证书概要 SSL证书是数字证书的一种,类似于驾驶证.护照和营业执照的电子副本.因为配置在服务器上,也称为SSL服务器证书. SSL 证书 [1] 就是遵守 SSL协议,由受信任的数字证书颁发机构 ...

  9. Centos安装Nginx并使用acme脚本配置SSL证书

    仅做记录供以后查看,所有代码来自互联网查找整理 1. 更新yum源 yum update 2. 查看防火墙并开放所需端口 firewall-cmd --zone=public --list-ports ...

最新文章

  1. 百度天气api android,为什么百度apistore的天气api在Java项目中能用而在安卓项目中不能用?...
  2. select报错 spark_使用spark-sql报错 “Metastore contains multiple versions”
  3. 基于Redis的分布式锁实现
  4. web前端三大主流框架_小猿圈web前端之前端的主流框架都有哪些?
  5. ArcGIS编辑操作的常用快捷键一览表
  6. JavaSE——异常处理(异常简介、try-catch-finally、throws、throw)
  7. 面试基础算法及编程 第三弹(树(二叉树)相关:主要考察指针相关的操作)
  8. Tomcat启动默认访问项目
  9. 华为 5G 遭受致命一击!
  10. redis运行redis-server.exe错误
  11. 连接超时 如果你使用HTTP代理,请在IDE或Gradle中配置代理设置 Connection timed out: connect. If you are behind an HTTP proxy
  12. 汉字转拼音首字母大写
  13. XML注释与取消注释快捷键
  14. java边缘检测_Sobel边缘检测实现
  15. 【青少年编程】【三级】猫咪抓老鼠游戏
  16. 易软门诊管理9.1破解版
  17. mysql查询图书复本量_SQL语句在图书管理数据库中实现下列查询S1:在借阅表中查询哪些 爱问知识人...
  18. 计算机sci检索,SCI/EI检索的国内计算机期刊
  19. 事务四大特性(ACID):原子性、一致性、隔离性、持久性
  20. 您需要administrator权限才能对此文件进行更改

热门文章

  1. HihoCoder 1835 K-Dimensional Foil II ICPC2018 北京网络赛
  2. 18个程序员才看得懂的段子!
  3. docker启动异常 prior storage driver overlay2 failed: driver not supported
  4. grubby在线修改内核参数
  5. 反向传播与梯度下降详解
  6. phoenix查询超时
  7. MySQL 主从同步percona-toolkit工具(数据一致性监测、延迟监控)使用梳理
  8. 紫羚云秦鸿林:为什么说OA和低代码平台都不能代替专业ITSM(一)
  9. 华为DHCP SNOOPING配置
  10. 別人拿身份证照片和银行卡照片去网上借钱,这有风险吗?