docker安装nginx并配置ssl证书
文章目录
- 一、准备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证书相关推荐
- docker安装nginx并配置SSL到个人博客
1 准备 1.已安装好docker环境 2.已申请好域名 2 申请SSL证书 我使用的是腾讯云,申请免费的TrustAsia的SSL证书,阿里云等或者其他平台一般都会提供TrustAsia的SSL证书 ...
- docker安装nginx,配置nginx,并成功访问
[Nginx那些事]系列 [Nginx那些事]nginx 安装及常用指令 [Nginx那些事]Nginx 配置文件说明 [Nginx那些事]nginx原理解析 [Nginx那些事]nginx配置实例( ...
- Nginx 下配置SSL证书的方法
1.Nginx 配置 ssl 模块 默认 Nginx 是没有 ssl 模块的,而我的 VPS 默认装的是 Nginx 0.7.63 ,顺带把 Nginx 升级到 0.7.64 并且 配置 ssl 模 ...
- Linux安装nginx并配置ssl
在linux下安装nginx,首先需要安装 gcc-c++编译器.然后安装nginx依赖的pcre和zlib包.最后安装nginx即可. 1.先安装gcc-c++编译器 yum install gcc ...
- 使用Docker安装Nginx并配置端口转发
使用docker安装并运行nginx命令: docker run --name=nginx -p 80:80 -d docker.io/nginx 使用命令: docker exec -it ngin ...
- Nginx配置SSL证书——采用腾讯云SSL证书配置Nginx使用https访问
一.引言 又是新的一周,小编在工作之余抽空写写博客.最近一直在写关于Nginx教学的博客,今天我们来讲讲这个Nginx怎么配置SSL证书,也就是通过https进行访问. 为什么我们要配置这个SSL证书 ...
- Spring Boot项目配置ssl证书及自定义ssl端口号
好吧,一切不带s的http裸奔都是耍流氓. 我们知道在一个Web服务器(e.g. Tomcat, Websphere, Nginx)上配置ssl证书很容易,那么如何在SpringBoot这种内嵌了服务 ...
- Nginx安装ssl模块和配置ssl证书
ssl证书概要 SSL证书是数字证书的一种,类似于驾驶证.护照和营业执照的电子副本.因为配置在服务器上,也称为SSL服务器证书. SSL 证书 [1] 就是遵守 SSL协议,由受信任的数字证书颁发机构 ...
- Centos安装Nginx并使用acme脚本配置SSL证书
仅做记录供以后查看,所有代码来自互联网查找整理 1. 更新yum源 yum update 2. 查看防火墙并开放所需端口 firewall-cmd --zone=public --list-ports ...
最新文章
- 百度天气api android,为什么百度apistore的天气api在Java项目中能用而在安卓项目中不能用?...
- select报错 spark_使用spark-sql报错 “Metastore contains multiple versions”
- 基于Redis的分布式锁实现
- web前端三大主流框架_小猿圈web前端之前端的主流框架都有哪些?
- ArcGIS编辑操作的常用快捷键一览表
- JavaSE——异常处理(异常简介、try-catch-finally、throws、throw)
- 面试基础算法及编程 第三弹(树(二叉树)相关:主要考察指针相关的操作)
- Tomcat启动默认访问项目
- 华为 5G 遭受致命一击!
- redis运行redis-server.exe错误
- 连接超时 如果你使用HTTP代理,请在IDE或Gradle中配置代理设置 Connection timed out: connect. If you are behind an HTTP proxy
- 汉字转拼音首字母大写
- XML注释与取消注释快捷键
- java边缘检测_Sobel边缘检测实现
- 【青少年编程】【三级】猫咪抓老鼠游戏
- 易软门诊管理9.1破解版
- mysql查询图书复本量_SQL语句在图书管理数据库中实现下列查询S1:在借阅表中查询哪些 爱问知识人...
- 计算机sci检索,SCI/EI检索的国内计算机期刊
- 事务四大特性(ACID):原子性、一致性、隔离性、持久性
- 您需要administrator权限才能对此文件进行更改
热门文章
- HihoCoder 1835 K-Dimensional Foil II ICPC2018 北京网络赛
- 18个程序员才看得懂的段子!
- docker启动异常 prior storage driver overlay2 failed: driver not supported
- grubby在线修改内核参数
- 反向传播与梯度下降详解
- phoenix查询超时
- MySQL 主从同步percona-toolkit工具(数据一致性监测、延迟监控)使用梳理
- 紫羚云秦鸿林:为什么说OA和低代码平台都不能代替专业ITSM(一)
- 华为DHCP SNOOPING配置
- 別人拿身份证照片和银行卡照片去网上借钱,这有风险吗?