Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >使用Nginx+Docker配置HTTPS负载均衡

使用Nginx+Docker配置HTTPS负载均衡

作者头像
星哥玩云
发布于 2022-07-14 01:14:15
发布于 2022-07-14 01:14:15
1.5K0
举报
文章被收录于专栏:开源部署开源部署
了解Docker

Docker是一个golang编写的开源轻量级的、可移植的、自给自足的容器,Docker主要应用在以下场景:

  • web应用的自动化打包和发布;
  • 自动化测试和持续集成、发布;
  • 在服务型环境中部署和调整数据库或其他的后台应用;
  • 从头编译或者扩展现有的OpenShift或Cloud Foundry平台来搭建自己的PaaS环境。

Docker系统有两个程序:docker服务端和docker客户端。其中docker服务端是一个服务进程,管理着所有的容器。docker客户端则扮演着docker服务端的远程控制器,可以用来控制docker的服务端进程。大部分情况下,docker服务端和客户端运行在一台机器上。

  • 镜像:一个镜像相当于一个root文件系统,包含运行需要的文件、库、资源、配置
  • 容器:容器是镜像的实例化操作,容器有自己独立的文件系统、网络配置、进程空间,每个容器是独立的运行机制,容器是无状态的,数据应保存在数据卷中。
  • 仓库:管理docker镜像的发布
docker安装及配置

CentOS系列系统中可直接使用yum命令进行搜索安装,安装完毕后可运行docker version查看安装的版本,docker包含了很有公用的镜像,可使用docker search进行搜索安装。

yum install docker -y docker pull nginx # 运行4个docker镜像,网站目录在./ningx/html/下,日志文件在 ./nginx/logs/下 docker run -it -p 8081:80 --name nginx1 -v `pwd`/nginx/html1/:/usr/share/nginx/html/ -v `pwd`/nginx/logs1/:/var/log/nginx/  -d nginx docker run -it -p 8082:80 --name nginx2 -v `pwd`/nginx/html2/:/usr/share/nginx/html/ -v `pwd`/nginx/logs2/:/var/log/nginx/ -d nginx docker run -it -p 8083:80 --name nginx3 -v `pwd`/nginx/html3/:/usr/share/nginx/html/ -v `pwd`/nginx/logs3/:/var/log/nginx/ -d nginx docker run -it -p 8084:80 --name nginx4 -v `pwd`/nginx/html4/:/usr/share/nginx/html/ -v `pwd`/nginx/logs4/:/var/log/nginx/ -d nginx

安装docker php-fpm

docker pull php:7.1-fpm docker run -p 9000:9000 --name php-fpm1 -d -v /opt/app/docker/nginx/app1/:/var/www/html:ro php:7.1-fpm docker run --name nginx1 -p 8081:80 -d -v /opt/app/docker/nginx/html1:/usr/share/nginx/html:ro -v /opt/app/docker/nginx/conf1:/etc/nginx/conf.d:ro -v /opt/app/docker/nginx/logs1:/var/log/nginx --link php-fpm1:php nginx echo "<?php phpinfo();" > /opt/app/docker/nginx/app1/index.php

推荐《Docker从入门到实践》,具体可打开 https://www.linuxidc.com/Linux/2016-02/128290.htm

nginx配置

nginx的安装就不再描述了,最简单快捷的可使用yum进行安装,可可以自行去官网进行下载编译安装,以下是我的nginx负载均衡https到docker的配置文件:

注:我的运行环境在aws上,你可以将docker和nginx安装在一台机器上,也可以将docker部署在1台或4台机器,nginx部署在一台机器,再结合keepalived做高可用就可实现高可用双机热备的https负载均衡啦~

user nginx; worker_processes auto; error_log /var/log/nginx/error.log; pid /var/run/nginx.pid;

events {     worker_connections 1024; }

http {    log_format  main  'remote_addr - remote_user [time_local] "status body_bytes_sent "http_referer" '                      '"

创建ssl自建的证书

线上证书一般去ca申请的,测试的话可以使用openssl自己创建两个证书,创建命令如下:

# 生成一个2048位密钥文件 openssl genrsa -out privkey.pem 2048 # 使用密钥文件生成一个证书 openssl req -new -x509 -key privkey.pem -out cacert.pem -days 1095

SSL常见错误
问题:此网站出具的安全证书不是由受信任的证书颁发机构颁发的。

服务器正在使用的SSL证书不是通过正式的全球信任的CA颁发。推荐购买GlobalSign SSL,GeoTrust SSL ,Symante SSL证书, SSL通常是因为没有正确安装证书,请再检查一下是否删除了原来的测试证书,如果网站使用的证书是正确的,请重新启动webserver。

问题:此网站出具的安全证书是为其他网站地址颁发的。

一个SSL证书所对应的域名是一个全域名FQDN( Fully Qualified Domain Name ),如果证书中的域名是www.domain.com,则通过其他相近的域名:web.domain.com,app.domain.com,domain.com,系统都会报告和证书中的域名不匹配。如果有多相同主域名的站点需要申请证书,推荐通配型SSL证书;如果不是相同主域名则需要购买多域名型SSL证书。

问题:本页面包含有不安全的内容。

如果一个页面需要通过HTTPS访问被访问,则其中所有的元素都必须是HTTPS方式,如果有:图片、JS脚本,FLASH插件是通过HTTP方式去调用的,就会出现这个错误,最常见的,就是调用flash播放插件:codebase='http://download.macromedia.com/pub/shockwave/ cabs/flash/swflash.cab',将http改成HTTPS即可,刷新后测试SSL问题有没有解决。

问题:此网站出具的安全证书已过期或还未生效。

这个标识网站使用的SSL证书已经过期,请先检查网站证书的有效期,如果网站证书有效期在本日以后,则请检查本地电脑的日期设置,是否正确。如果证书过期了,请尽快联系易维信客服,续费!就能处理好SSL错误了。 问题:为什么使用匿名Diffie-Hellman(ADH)算法时会收到"no shared cipher"错误?

默认情况下,出于安全原因,OpenSSL并不启用ADH算法。仅在你确实明白了这个算法的副作用时,你才可以启用此算法。 为了使用匿名Diffie-Hellman(ADH)算法,你必须在编译OpenSSL时使用"-DSSL_ALLOW_ADH"配置选项,并在SSLCipherSuite指令中添加"ADH"。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Nginx 配置HTTPS
http://slproweb.com/products/Win32OpenSSL.html
ruochen
2021/12/04
2.7K0
🐟前端同学也能搞定 Docker:快速入门指南
前端掌握Docker要掌握到什么程度呢?其实只要能写DockerFile脚本就行了,至于深入原理和底层啊,看自己兴趣吧。毕竟Go我只会CRUD,反正目前对于我来说足够用了,下面我来介绍一下Docker水文和分享我在项目中如何使用Docker,反正就是简单粗暴,至于k8s容器编排,给我直接上腾讯云ok,毕竟我只是一个切图仔,最复杂我也只会用docker-compose,那就开始Docker之旅吧
linwu
2023/07/27
3300
🐟前端同学也能搞定 Docker:快速入门指南
CentOS 7 使用 docker 安装 typecho 博客系统
我的博客 https://savokiss.com 用的是 typecho,一直使用的是 阿里云ECS 直接安装的 MySQL 和 PHP,由于买的时间比较早,当时用的是 CentOS 6.5。后来想玩 docker,发现 docker 只支持 CentOS 7+,加上之前的系统上东西太乱了,所以这次有时间就将数据库和 typecho 源码备份了一下,然后换了一个纯净的 CentOS 7.6 的镜像。由于我买的 ECS 是 1CPU 1GB 内存,之前还一直担心跑不起来 docker,这次升级完之后发现完全没问题,内存用了一半都不到哈~于是记录下这个过程,说不定可以帮到其他小伙伴。
savokiss
2019/11/06
2.3K0
Docker Registry
Docker 私有库 为什么需要: 严格控制图像的存储位置 完全拥有您的图像分发管道 将图像存储和分发紧密集成到您的内部开发工作流程中 基本命令 # 1. 启动 docker run -d -p 5000:5000 --restart=always --name registry registry:2 # 关闭并删除容器 # docker stop registry # docker rm registry # 2. 查看registry当前仓库的镜像 curl http://10.10.1.45:500
天地一小儒
2022/12/28
6540
Docker Linux快速安装及Nginx部署
最近正在部署一套新的Linux服务器环境,基于Docker来部署所有的应用,顺便整理了一套经过验证的操作手册,以便大家遇到类似需求时,可以直接拿来用。
程序新视界
2024/01/06
7520
Docker Linux快速安装及Nginx部署
Nginx反向代理+负载均衡简单实现(https方式)
背景: A服务器(192.168.1.8)作为nginx代理服务器 B服务器(192.168.1.150)作为后端真实服务器 现在需要访问https://testwww.huanqiu.com请求时从A服务器上反向代理到B服务器上 这就涉及到nginx反向代理https请求的配置了~~~ ------------------------------------------------------------------------------------ A服务器(192.168.1.8)上的操作流程: 1
洗尽了浮华
2018/01/22
3K0
docker-compose搭建 Nginx+PHP+MySQL 环境
到 https://code.aliyun.com/ 创建一个项目,如Dockerfile。之后我们把wordpress环境的所有相关Dockerfile及配置文件放置到centosbz目录。
菲宇
2019/06/13
2.1K0
docker-compose搭建 Nginx+PHP+MySQL 环境
实战:第二十四章:ip:port改成域名的方式,并将http自动转https
第一步:获取SSL证书 11种免费获取SSL证书的方式:https://www.toolmao.com/1069.html 我选择的是阿里云的SSL免费版
Java廖志伟
2022/09/28
1.1K0
实战:第二十四章:ip:port改成域名的方式,并将http自动转https
使用nginx+docker实现一个简单的负载均衡
一般来说,一个公司不可能只部署一个服务,如果是这个服务某些原因挂了,导致引起客诉。
千羽
2023/08/28
9740
使用nginx+docker实现一个简单的负载均衡
docker安装nginx并配置https
配置完后,访问example.com、www.example.com 的请求会被转发到服务器的8090端口
Java那些事儿
2020/07/21
15.9K3
docker安装nginx并配置https
为 Docker 中的 Nginx 配置 HTTPS
没有 https 加持的网站会逐渐地被浏览器标记为不安全的,所以为网站添加 https 已经变得刻不容缓。对于商业网站来说,花钱购买 SSL/TLS 证书并不是什么问题。但对于个人用户来说,如果能有免费的 SSL/TLS 证书可用将会是非常幸福的事情!Let's Encrypt 就是一个提供免费 SSL/TLS 证书的网站,由于其证书期限只有三个月,所以需要我们用自动化的方式去更新证书。本文将介绍如何为通过 docker 运行的 nginx 中的站点添加 https 支持,并自动完成证书的更新。本文的演示环境为:运行在 Azure 上的 Ubuntu 16.04 主机(此图来自互联网):
星哥玩云
2022/07/14
1.7K0
为 Docker 中的 Nginx 配置 HTTPS
前后端都用得上的 Nginx 日常使用经验
最基本组成:一个 server 节点一个域名配置,要添加其他配置添加 server 节点即可
易墨
2023/11/04
1.5K0
前后端都用得上的 Nginx 日常使用经验
Nginx如何支持HTTPS?手把手教贼简单!
随着我们网站用户的增多,我们会逐渐意识到HTTPS加密的重要性。在不修改现有代码的情况下,要从HTTP升级到HTTPS,让Nginx支持HTTPS是个很好的选择。今天我们来讲下如何从Nginx入手,从HTTP升级到HTTPS,同时支持静态网站和SpringBoot应用,希望对大家有所帮助! 生成SSL自签名证书 虽然自签名证书浏览器认为并不是安全的,但是学习下SSL证书的生成还是很有必要的! 首先创建SSL证书私钥,期间需要输入两次用户名和密码,生成文件为blog.key; openssl genrsa
macrozheng
2020/11/06
2.1K0
docker容器通过nginx+php搭建http/https站点
注意:php7需要安装mysql扩展,才能正常连接 准备阶段 # 创建目录: # cert 存放证书文件的目录 # log 存放日志文件的目录 # nginx_conf 存放nginx.conf配置文件的目录 # wwwroot 存放网站文件的根目录 mkdir -p /www/cert /www/log /www/nginx_conf /www/wwwroot # nginx.conf配置文件 配置http(跳转到https)/ https 访问
醉生萌死
2018/11/13
2.9K1
NextCloud私有云盘安装部署记录
描述:由于个人家里的NAS以及公司团队对私有网盘的进行日常工作文件同步以及协同办公的需求,所以有了这篇文章,讲解记录从选项到安装以及同步使用等相关操作;
全栈工程师修炼指南
2022/09/29
27.2K0
NextCloud私有云盘安装部署记录
nginx负载均衡、配置ssl 原
Nginx负载均衡即为当代理服务器将自定义的域名解析到多个指定IP时,通过upstream来保证用户可以通过代理服务器正常访问各个IP。
阿dai学长
2019/04/03
1K0
Docker 安装 Nginx 负载均衡配置
Docker 安装 # 1)安装依赖包 yum install -y yum-utils device-mapper-persistent-data lvm2 # 2)添加Docker软件包源(否则doker安装的不是新版本) yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo # 3)安装Docker CE yum install -y docker-ce # 4)启动Do
IT茂茂
2020/03/05
2.6K0
Docker 安装 Nginx 负载均衡配置
02.docker镜像制作
基于centos7制作docker镜像 docker镜像是企业非常常用的一种应用打包,应用交付的方式. docker天生优势,一处构建处处运行,在任何机器构建的服务均可以在任意一台安装有docker的主机上运行 1. docker构建nginx镜像 1. 首先安装centos7平台环境 docker run -itd --name centos7 cenots:7 docker run -it --name centos7 centos:7 2. 进入cenots7 docker exec -it cen
陈雷雷
2020/03/18
1.5K0
02.docker镜像制作
CentOS 7使用Nginx+MariaDB+PHP安装Nextcloud 13
在这篇文章中,我将向你展示如何在 CentOS 7 服务器中安装和配置最新版本的 Nextcloud 13。我会通过 Nginx 和 PHP7-FPM 来运行 Nextcloud,同时使用 MariaDB 做为数据库系统。
星哥玩云
2022/07/14
1.7K0
部署lnmp环境,安装typecho博客
安装nginx和PHP环境 root@cby:~# apt install nginx php7.4 php7.4-mysql php7.4-fpm 复制代码 修改nginx配置文件 root@cby:~# vim /etc/nginx/sites-available/default root@cby:~# cat /etc/nginx/sites-available/default server { listen 80; listen [::]:80;
小陈运维
2022/01/03
1.3K0
相关推荐
Nginx 配置HTTPS
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档