使用docker部署nginx并支持https

news2025/1/5 9:54:37

配置nginx支持https,其实也简单,搞个证书,然后修改下配置文件就好了。我以前一篇文章(使用docker部署多个nginx站点并配置负载均衡)为例,做个记录。

如前所述,我使用docker,部署了3个nginx。一个做负载均衡服务器,另外两个做应用。结构如下:
在这里插入图片描述
那么,支持https,也是在负载均衡这里进行设置。详细记录如下:

一、制作证书

反正docker跑在linux下,证书就在linux里制作了。
1、安装openssl
yum install -y openssl openssl-devel

2、制作密钥
openssl genrsa -out szdata.key 2048

3、制作证书
openssl req -new -x509 -days 3650 -key szdata.key -out szdata.crt
输入信息,回车,回车,就好了。
在这里插入图片描述

二、重新创建nginx容器

像我的情况,重新创建负载均衡这个容器就行了。脚本如下:

sudo docker run --name nginx-szdata-lb --privileged -it -p 8443:443 \
-v /home/admin/szdata/nginx/conf/lb.conf:/etc/nginx/nginx.conf:ro \
-v /home/admin/szdata/nginx/conf/conf.d:/etc/nginx/conf.d:ro \
-v /home/admin/szdata/nginx/logs:/var/log/nginx \
-v /home/admin/szdata/nginx/cert:/etc/nginx/cert \
-d nginx

在这里插入图片描述在这里插入图片描述
docker容器删除、重建很平常,这时就体现出挂载方式部署的优越性了。不然配置文件跟着被删,太麻烦。

三、修改nginx配置

user  nginx;
worker_processes  auto;

error_log  /var/log/nginx/error.log notice;
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;

	#负载均衡
    upstream szdata-web{
	   server 192.168.175.128:8001;
	   server 192.168.175.128:8002;
    }

	#重点
    server {
        listen 443 ssl;
        server_name localhost;  
        # 注意文件位置,是从/etc/nginx/下开始算起的
        ssl_certificate cert/szdata.crt;
        ssl_certificate_key cert/szdata.key;
        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;

        location / {
            proxy_set_header HOST $host;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass http://szdata-web;
        }

        location /pubzy/ {
            alias   /usr/share/nginx/html/;
        }
    }
    #这个好像没什么卵用。不起作用。存疑。
    server {
        listen       80;
        server_name  localhost;    
        return 301 https://$host$request_uri; 
    }

}

有关负载均衡,请看我前一篇文章:使用docker部署多个nginx站点并配置负载均衡

然后输入 https://ip:8443/,就可以访问了。

四、小结

从配置看,nginx还是用了转发。外部使用https请求,nginx转发到了http。

总的来看,设置nginx支持https还是比较简单的。自己制作的网站证书,虽然浏览器不认,但这并不妨碍浏览器与服务器之间进行加密传输。试想如果没有https,那么我们登录的时候,账号密码就是明文传输,今时今日的客户无法接收。所以https是标配。

不过,站点改为https后,之前如果有一些外链是http的话,将引用不了。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一文带你看懂软件测试(功能、接口、性能、自动化)详解

全文2000字,预计阅读时间10分钟,建议先点赞收藏慢慢看 一、软件测试功能测试 测试用例编写是软件测试的基本技能;也有很多人认为测试用例是软件测试的核心;软件测试中最重要的是设计和生成有效的测试用例;测试用例是测…

面了个京东拿30k出来的,牛逼到家了。。。

今天上班开早会就是新人见面仪式,听说来了个很厉害的大佬,年纪还不大,是上家公司离职过来的,薪资已经达到中高等水平,很多人都好奇不已,能拿到这个薪资应该人不简单,果然,自我介绍的…

RK平台如何配置USB功能

简介 RK平台基本能够通过dts配置就能实现USB功能。为了方便理解,我这里分三部分来介绍,包括:usb-phy,usb控制器,usb供电。 usb-phy usb-phy负责最底层的信号转换,主要是硬件的差分信号转换成数字信号传给…

十条ChatGPT常用的Prompt

Prompt 本文数据来源:Will 3.6-6.16 硅谷,原作者:rowancheung 一,简化复杂的信息 Prompt: 将(主题)分解成更小、更容易理解的部分。使用类比和现实生活中的例子来简化概念并使其更相关 Brea…

Python之并发多线程操作

一、threading模块介绍 multiprocess模块的完全模仿了threading模块的接口,二者在使用层面,有很大的相似性 二、开启线程的两种方式 方式一 #方式一 from threading import Thread import time def sayhi(name):time.sleep(2)print(%s say hello %na…

最大公约数(GCD) 与 最小公倍数(LCM)的 定义、关系、求法

最大公约数 与 最小公倍数 约数 和 倍数最大公约数最小公倍数 最大公约数与最小公倍数的关系求最大公约数、最小公倍数例一例二 约数 和 倍数 如果数 a a a能被数 b b b整除, a a a就叫做 b b b的倍数, b b b就叫做 a a a的约数。 约数和倍数都表示一个…

从0-1实战react项目

文章目录 1. 安装2. 完成一个组件开发3. 添加路由3. 引入element-react1. 运行发现报错./node_modules/element-react/dist/npm/es5/src/locale/format.js2. 接着又报错The <Router /> component appears to be a function component that returns a class instance. Cha…

[SpringBoot]关于Profile配置文件关于Slf4j日志

关于Profile配置文件 在Spring系列框架中&#xff0c;关于配置文件&#xff0c;允许同时存在多个配置文件&#xff08;例如同时存在a.yml、b.yml等&#xff09;&#xff0c;并且&#xff0c;你可以按需切换某个配置文件&#xff0c;这些默认不生效、需要被激活才生效的配置&am…

【ProtoBuf】protobuf序列化协议

Protobuf介绍 Protobuf (Protocol Buffers) 是谷歌开发的一款无关平台&#xff0c;无关语言&#xff0c;可扩展&#xff0c;轻量级高效的序列化结构的数据格式&#xff0c;用于将自定义数据结构序列化成字节流&#xff0c;和将字节流反序列化为数据结构。所以很适合做数据存储…

容器底层实现技术

一、Namespace 和 Cgroup 1、容器技术发展历史 2、Docker 容器实现原理 1. Docker 容器在实现上通过 namespace 技术实现进程隔离&#xff0c; 通过Cgroup 技术实现容器进程可用资源的限制 3、Namespace Namespace &#xff1a;命名空间 1. 作用&#xff1a;资源隔离 2. 原理&…

web前端课程作业设计:个人简历

一.说明 今天博主的web前端选修课结课了&#xff0c;期末大作业也提交了&#xff0c;今天写一篇博客把我的大作业分享给大家。 二.题目 1. 大作业题目 个人简历主页设计 2. 内容要求 应尽量包含以下内容&#xff1a; 包含个人基本信息、教育背景、个人风采、与我联系四块…

企业四要素核验-企业四要素核验接口-api接口

接口地址&#xff1a; https://登录后显示/pyi/184/358(支持:http/https)) 在线查询&#xff1a;https://www.wapi.cn/api_detail/184/358.html 网站地址&#xff1a;https://www.wapi.cn 返回格式&#xff1a;json,xml 请求方式&#xff1a;GET,POST 请求说明&#xff1a; …

【实用篇】Elasticsearch01

分布式搜索引擎01 – elasticsearch基础 1.初识elasticsearch 1.1.了解ES 1.1.1.elasticsearch的作用 elasticsearch是一款非常强大的开源搜索引擎&#xff0c;具备非常多强大功能&#xff0c;可以帮助我们从海量数据中快速找到需要的内容 例如&#xff1a; 在GitHub搜索…

智慧公厕系统如何通过物联网技术提高公厕的管理效率

智慧公厕系统可以通过物联网技术&#xff0c;实现公共卫生间的智能化管理和服务&#xff0c;提高管理效率。本文将详细介绍智慧公厕系统如何通过物联网技术提高公共卫生间的管理效率&#xff0c;从硬件、软件、系统等方面逐一分析。 XP-智慧厕所方案-HYF20230328&#xff08;16…

工业企业为什么要用边缘计算网关?

在我们进入智能制造和工业4.0的新时代&#xff0c;工业企业的数据需求正急速增长。传感器&#xff0c;机器和设备每分钟都在产生大量数据&#xff0c;它们对实时处理和分析的需求比以往任何时候都要强烈。这就是为什么工业企业需要边缘计算网关。 边缘计算网关在物联网架构中担…

大数据:Apache hive分布式sql计算平台,hive架构,hive部署,hive初体验

大数据&#xff1a;Apache hive分布式sql计算平台 2022找工作是学历、能力和运气的超强结合体&#xff0c;遇到寒冬&#xff0c;大厂不招人&#xff0c;可能很多算法学生都得去找开发&#xff0c;测开 测开的话&#xff0c;你就得学数据库&#xff0c;sql&#xff0c;oracle&a…

Java002——JDK的安装以及配置环境变量

为什么要安装jdk 1、JDK 全称 Java Development Kit&#xff0c;意为 Java 开发工具。&#xff0c;要想开发java程序就必须安装JDK。没有JDK的话&#xff0c;无法编译运行Java程序。 2、JDK包含的基本组件包括以下文件&#xff1a;   javac.exe,用于编译java文件&#xff0c…

不经意传输(OT)了解

概述 OT&#xff0c;不经意传输&#xff0c;常被大量用于安全多方计算中&#xff0c;能够很大程度决定一个SMPC协议的效率。它的核心概念是接收方可以从发送方&#xff08;持有秘密信息&#xff09;手中选择性接收自己想要的信息而接收方对所选择的信息内容一无所知。目前有2-…

乐谱文件转换,支持批量mscz、mxl、musicxml转mp3等格式

我是一个喜欢听音乐的人&#xff0c;每天都会在路上听着歌放松自己。但是有时候想要听的歌并没有下载下来&#xff0c;或者格式不兼容。 最近我发现了一个神奇的软件——mscz转mp3&#xff0c;可以把乐谱文件转成mp3格式&#xff01; 软件界面简洁明了&#xff0c;使用也非常…

js的Bom操作

1.认识Bom ◼ BOM&#xff1a;浏览器对象模型&#xff08;Browser Object Model&#xff09;  简称 BOM&#xff0c;由浏览器提供的用于处理文档&#xff08;document&#xff09;之外的所有内容的其他对象&#xff1b;  比如navigator、location、history等对象&#xff1…