docker nginx ssl设置

使用docker运行nginx,配置代理,和ssl设置,进行https访问

一 准备

本次在centos环境中

1.已安装docker,docker-compose

2.运行了一个后端服务容器,提供基本的接口访问【可选】

3.一个域名(已经解析到服务器上)【必要】

4.ssl证书【必要】

二 ssl证书下载

使用阿里云免费证书

登陆阿里云管理控制台,搜索 数字证书管理服务 ,进入证书管理

 点击左侧ssl证书,进入,点击免费证书,点击创建证书

 创建后,点击证书申请

填写内容,进行申请 

通过后,点击下载,选择nginx项

 

 

下载完成后上传至服务器,解压后有两个文件,分别以pem和key后缀

三 docker 容器间通信网络

由于nginx和服务都是运行在docker中,为了更好的进行容器间通信,使用docker的网络

docker network create --driver bridge --subnet 172.30.1.0/24 --gateway 172.30.1.1 my_net
# my_net 自定义网络名称

创建好一个网络后,查看 docker network list

[root@k8s-work2 men]# docker network list
NETWORK ID     NAME                   DRIVER    SCOPE
87c6a3cc05f4   bridge                 bridge    local
06441e9ed2b7   harbor_harbor          bridge    local
c1e749a2cfe9   host                   host      local
d09d714a1054   menstruation_default   bridge    local
bf99db8fc21e   my_net                 bridge    local
8a50da08ea68   my_network             bridge    local
042f6ecb737f   none                   null      local

创建容器时指定使用网络,参照4.3

四 nginx 

4.1 拉取镜像

docker pull nginx

4.2 创建配置文件

创建一个文件夹conf,增加一个文件nginx.conf,作为nginx的配置文件

其中后端服务的ip为自定义固定的,也可以使用后端服务容器名称【需要创建该容器时加入 三 中的网络】

events {worker_connections  1024;
}http {include       mime.types;default_type  application/octet-stream;sendfile        on;keepalive_timeout  65;client_max_body_size 50m;server{listen       80;server_name  服务器ip;location = /favicon.ico {access_log off;log_not_found off;}location / {proxy_pass http://172.30.1.8:8080/; # 后端服务ip接口}}server{listen       80;server_name  域名;# 过滤请求location = /favicon.ico {access_log off;log_not_found off;}location / {proxy_pass http://172.30.1.8:8080/; # 后端服务ip接口}}server {listen 443 ssl;server_name 域名;ssl_certificate /etc/nginx/certs/xxx.pem; # 证书文件ssl_certificate_key /etc/nginx/certs/xxx.key; # 证书文件ssl_session_timeout 5m;ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;#表示使用的加密套件的类型。ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # 表示使用的TLS协议的类型。ssl_prefer_server_ciphers on;location / {proxy_pass http://172.30.1.8:8080/; # 后端服务ip接口}}}

4.3 docker-compose.yaml

创建一个文件夹存放docker-compose.yaml

version: "3"
services:nginx:image: nginx #镜像名称container_name: nginx #容器名称stdin_open: truetty: truerestart: alwaysports:- 80:80- 443:443volumes:- /usr/local/nginx/docker/certs:/etc/nginx/certs #将服务器上保存证书的目录挂载到nginx容器中- /usr/local/nginx/docker/logs:/var/log/nginx #挂载日记- /usr/local/nginx/docker/conf/nginx.conf:/etc/nginx/nginx.conf #挂载配置文件privileged: truenetworks:my_net:ipv4_address: 172.30.1.3 #固定ipenvironment:- SSL_CERT_PATH=/etc/nginx/certs/xxx.pem #证书名- SSL_KEY_PATH=/etc/nginx/certs/x.key #证书名
networks:my_net:external: true

4.4 运行

docker-compose up -d

五 验证

在浏览器中访问 https://域名/records/all/1,返回后端服务/records/all/1返回内容

并且有https图标

 

如果没有返回,则需查看logs文件夹下的日志内容,具体定位问题所在

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/72765.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于LSTM深度学习网络的时间序列分析matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 % 随机打乱数据集并划分训练集和测试集 index_list randperm(size(wdata, 1)); ind …

9.文件基本操作

第四章 文件管理 9.文件基本操作 ​    “打开文件和关闭文件”与平常鼠标双击打开文件和点击“X”关闭文件是有所不同的。 ​    操作系统在处理open系统调用时主要做了以下两件事情,①根据我们提供的文件存放路径在外存当中找到这个目录对应的目录表&#x…

基于QT4的GPX文件编辑器开发

GPX文件是记录地理点的文件,本质是一种xml文件。GPX文件目前没有很好的编辑器,因此作者决定开发一款无需安装的绿色编辑器。 在QT4开发中,XML可以用DOM来实现,但其逻辑并不是很清晰。使用模型视图反而会更加可读。因此在开发中,使用model-view模式来实现数据读写。 1 需…

Linux系统安装Google Chrome

1.进入谷歌浏览器官网 Google Chrome - Download the Fast, Secure Browser from GoogleGet more done with the new Google Chrome. A more simple, secure, and faster web browser than ever, with Google’s smarts built-in. Download now.http://www.google.cn/intl/en_…

【C++】做一个飞机空战小游戏(九)——发射子弹的编程技巧

[导读]本系列博文内容链接如下: 【C】做一个飞机空战小游戏(一)——使用getch()函数获得键盘码值 【C】做一个飞机空战小游戏(二)——利用getch()函数实现键盘控制单个字符移动【C】做一个飞机空战小游戏(三)——getch()函数控制任意造型飞机图标移动 【C】做一个飞…

易服客工作室:Houzez主题 - 超级房地产WordPress主题/网站

Houzez主题是全球流行的房地产经纪人和公司的WordPress主题。 Houzez Theme是专业设计师创造一流设计的超级灵活起点。它具有您的客户(房地产经纪人或公司)甚至可能做梦也想不到的功能。 网址:Houzez主题 - 超级房地产WordPress主题/网站 - …

Vue中实现自动匹配搜索框内容 关键字高亮文字显示

实现效果如下: 1.首先需要给输入框进行双向绑定 2.拿到搜索的结果去渲染页面 将返回的结果和搜索的关键字进行比对 如果相同的 就变红 上代码 html部分 //输入框<div class"search"><div class"shuru"><input type"请输入要查询的…

蓝牙资讯|安卓将加强耳机音量监控,耳机查找功能将更加普遍

为了保护用户的听力健康&#xff0c;Android 14 将增加一项新功能&#xff0c;当用户使用耳机听音乐时&#xff0c;如果音量过高或持续时间过长&#xff0c;系统会发出警告&#xff0c;并自动降低音量。这个功能叫做“耳机音量过高警告&#xff08;headphone loud sound alert&…

DevExpress VCL Subscription Crack

DevExpress VCL Subscription Crack Developer Express VCL Subscription包括VCL组件&#xff0c;用于&#xff1a;数据输入、图表、数据分析、导航、布局、网格、日程安排、样式、报告、打印和规划。Developer Express VCL Subscription支持Delphi XE7、XE8、10 Seattle、10.1…

Jmeter对websocket进行测试

JMeterWebSocketSampler-1.0.2-SNAPSHOT.jar下载 公司使用websocket比较奇怪&#xff0c;需要带认证信息进行长连接&#xff0c;通过websocket插件是请求失败&#xff0c;如下图&#xff0c;后面通过代码实现随再打包jar包完成websocket测试 本地实现代码如下&#xff1a; pa…

【设计模式】订单状态流传中的状态机与状态模式

文章目录 1. 前言2.状态模式2.1.订单状态流转案例2.1.1.状态枚举定义2.1.2.状态接口与实现2.1.3.状态机2.1.4.测试 2.2.退款状态的拓展2.2.1.代码拓展2.2.2.测试 2.3.小结 3.总结 1. 前言 状态模式一般是用在对象内部的状态流转场景中&#xff0c;用来实现状态机。 什么是状态…

设计模式之中介者模式(Mediator)的C++实现

1、中介者模式的提出 在软件组件开发过程中&#xff0c;如果存在多个对象&#xff0c;且这些对象之间存在的相互交互的情况不是一一对应的情况&#xff0c;这种功能组件间的对象引用关系比较复杂&#xff0c;耦合度较高。如果有一些新的需求变化&#xff0c;则不易扩展。中介者…