小知识:基于docker启动nginx ssl配置

前提条件

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

下载最新的nginxdocker 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 的文件如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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 文件里面插入以下内容:(注意先不要重启)

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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/

大功告成啦,重启完事!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:https://www.cnblogs.com/mingweiyard/p/11535286.html

声明: 猿站网有关资源均来自网络搜集与网友提供,任何涉及商业盈利目的的均不得使用,否则产生的一切后果将由您自己承担! 本平台资源仅供个人学习交流、测试使用 所有内容请在下载后24小时内删除,制止非法恶意传播,不对任何下载或转载者造成的危害负任何法律责任!也请大家支持、购置正版! 。本站一律禁止以任何方式发布或转载任何违法的相关信息访客发现请向站长举报,会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。本网站的资源部分来源于网络,如有侵权烦请发送邮件至:2697268773@qq.com进行处理。
建站知识

小知识:Docker Swarm集群管理的使用及原理解析

2023-3-25 15:56:24

建站知识

小知识:详解docker部署SpringBoot及替换jar包的方法

2023-3-25 16:11:22

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索