【Docker】apache 容器化部署
Apache环境标准软件基于Bitnami apache 构建。当前版本为2.4.58
你可以通过轻云UC部署工具直接安装部署,也可以手动按如下文档操作,该项目已经全面开源,可以从如下环境获取
配置文件地址: https://gitee.com/qingplus/qingcloud-platform
QingHub部署
快速启动样例
在容器中/app路径默认为配置为 Apache DocumentRoot 目录。
docker run --name apache -v /path/to/app:/app bitnami/apache:latest
或使用 Docker Compose:
version: '2'services:apache:image: 'bitnami/apache:latest'ports:- '80:8080'- '443:8443'volumes:- /path/to/app:/app
注意:由于这是一个非根容器,因此挂载的文件和目录必须具有 UID 的适当权限1001。
从主机访问您的服务器
要从主机访问 Web 服务器,您可以要求 Docker 将主机上的随机端口映射到8080容器8443中公开的端口。
docker run --name apache -P bitnami/apache:latest
运行docker port以确定 Docker 分配的随机端口。
$ docker port apache
8443/tcp -> 0.0.0.0:32768
8080/tcp -> 0.0.0.0:32769
您还可以手动指定要从主机转发到容器的端口。
docker run -p 8080:8080 -p 8443:8443 bitnami/apache:latest
通过导航到http://localhost:8080/来访问您的浏览器中的 Web 服务器。
配置
环境变量
可定制的环境变量
Name | Description | Default Value |
---|---|---|
APACHE_SERVER_TOKENS | Apache ServerTokens 指令。 | Prod |
只读环境变量
Name | Description | Value |
---|---|---|
WEB_SERVER_TYPE | 网络服务器类型 | apache |
APACHE_BASE_DIR | Apache 安装目录。 | ${BITNAMI_ROOT_DIR}/apache |
APACHE_BIN_DIR | 二进制可执行文件的 Apache 目录。 | ${APACHE_BASE_DIR}/bin |
APACHE_CONF_DIR | Apache 配置目录。 | ${APACHE_BASE_DIR}/conf |
APACHE_DEFAULT_CONF_DIR | Apache 默认配置目录。 | ${APACHE_BASE_DIR}/conf.default |
APACHE_HTDOCS_DIR | 包含要通过 Apache 提供服务的 HTTP 文件的目录。 | ${APACHE_BASE_DIR}/htdocs |
APACHE_TMP_DIR | 运行时临时文件的 Apache 目录。 | ${APACHE_BASE_DIR}/var/run |
APACHE_LOGS_DIR | Apache 日志目录。 | ${APACHE_BASE_DIR}/logs |
APACHE_VHOSTS_DIR | 虚拟主机的 Apache 目录。 | ${APACHE_CONF_DIR}/vhosts |
APACHE_HTACCESS_DIR | htaccess 文件的 Apache 目录。 | ${APACHE_VHOSTS_DIR}/htaccess |
APACHE_CONF_FILE | Apache 配置的路径。 | ${APACHE_CONF_DIR}/httpd.conf |
APACHE_PID_FILE | Apache PID 文件的路径。 | ${APACHE_TMP_DIR}/httpd.pid |
APACHE_DAEMON_USER | Apache 系统用户。 | daemon |
APACHE_DAEMON_GROUP | Apache system group. | daemon |
APACHE_DEFAULT_HTTP_PORT_NUMBER | 在构建时启用的默认 Apache HTTP 端口号。 | 8080 |
APACHE_DEFAULT_HTTP_PORT_NUMBER | 在构建时启用的默认 Apache HTTP 端口号。 | 80 |
APACHE_DEFAULT_HTTPS_PORT_NUMBER | 在构建时启用的默认 Apache HTTPS 端口号。 | 8443 |
APACHE_DEFAULT_HTTPS_PORT_NUMBER | 在构建时启用的默认 Apache HTTPS 端口号。 | 443 |
当您启动 Apache image时,您可以通过在 docker-compose 文件或命令行上传递一个或多个环境变量来调整实例的配置docker run。如果要添加新的环境变量:
- 对于 docker-compose,在应用程序部分下添加变量名称和值:
version: '2'services:apache:image: 'bitnami/apache:latest'ports:- '80:8081'- '443:8443'environment:- APACHE_HTTP_PORT_NUMBER=8081
- 对于手动执行,-e为每个变量和值添加一个选项:
docker run -d --name apache -p 80:8081 -p 443:443 \--network apache-tier \--e APACHE_HTTP_PORT_NUMBER=8081 \bitnami/apache:latest
添加自定义虚拟主机
默认情况httpd.conf下包括放置在/opt/bitnami/apache/conf/vhosts/. 您可以挂载my_vhost.conf到虚拟主机的文件/vhosts。
例如,为了添加一个虚拟主机www.example.com:
Step 2:使用以下内容编写文件my_vhost.conf
<VirtualHost *:8080>ServerName www.example.comDocumentRoot "/app"<Directory "/app">Options Indexes FollowSymLinksAllowOverride AllRequire all granted</Directory>
</VirtualHost>
Step 2: 将配置挂载为卷
docker run --name apache \-v /path/to/my_vhost.conf:/vhosts/my_vhost.conf:ro \bitnami/apache:latest
或使用 Docker Compose:
version: '2'services:apache:image: 'bitnami/apache:latest'ports:- '80:8080'- '443:8443'volumes:- /path/to/my_vhost.conf:/vhosts/my_vhost.conf:ro
使用自定义 SSL 证书
*注意:*以下步骤假设您使用自定义域名,并且您已将自定义域名配置为指向您的服务器。
该容器附带了已预先配置的 SSL 支持,并配有虚拟证书(server.crt以及server.key中的文件/certs)。如果您想使用自己的证书 ( .crt) 和证书密钥 ( .key) 文件,请按照以下步骤操作:
Step 1: 准备您的证书文件
在您的本地计算机中,创建一个名为certs的文件夹并放置您的证书文件。确保将两个文件分别重命名为server.crt和server.key:
mkdir /path/to/apache-certs -p
cp /path/to/certfile.crt /path/to/apache-certs/server.crt
cp /path/to/keyfile.key /path/to/apache-certs/server.key
Step 2: 运行 Apache image
从主机安装证书目录运行 Apache image,
docker run --name apache \-v /path/to/apache-certs:/certs \bitnami/apache:latest
或使用 Docker Compose:
version: '2'services:apache:image: 'bitnami/apache:latest'ports:- '80:8080'- '443:8443'volumes:- /path/to/apache-certs:/certs
Full configuration
该image在/opt/bitnami/apache/conf中查找配置。您可以使用自己的自定义配置文件覆盖httpd.conf文件。
docker run --name apache \-v /path/to/httpd.conf:/opt/bitnami/apache/conf/httpd.conf \bitnami/apache:latest
或使用 Docker Compose:
version: '2'services:apache:image: 'bitnami/apache:latest'ports:- '80:8080'- '443:8443'volumes:- /path/to/httpd.conf:/opt/bitnami/apache/conf/httpd.conf
相关文章:

【Docker】apache 容器化部署
Apache环境标准软件基于Bitnami apache 构建。当前版本为2.4.58 你可以通过轻云UC部署工具直接安装部署,也可以手动按如下文档操作,该项目已经全面开源,可以从如下环境获取 配置文件地址: https://gitee.com/qingplus/qingcloud-platform Q…...

基于element-plus +腾讯云COS实现图片上传
① 首先基于element-plus里面的:http-request"upload"自定义封装事件写一个点击事件之后基于腾讯云的 登录 对象存储控制台 ,创建存储桶。获取存储桶名称和 地域名称登录 访问管理控制台 ,获取您的项目 SecretId 和 SecretKey。在项目中安装 …...

Kafka模拟器产生数据仿真-集成StructuredStreaming做到”毫秒“级实时响应StreamData落地到mysql
这是仿真过程某图: 仿真实战kafka kafka消费sink端和StructuredStreaming集成通信成功 , 数据接收全部接收 数据落地情况: 全部接收到并all存入mysql 下面就简单分享一下StructuredStreaming代码吧 import org.apache.spark.sql.function…...

IDEA如何删除git最新一次远程提交
IDEA如何删除git最新一次远程提交 选择应用 -> Git -> Show History 选择最新提交上一次提交 -> Reset Current Branch to Here… Reset 提示框选择 Hard push到远程分支 -> 选择Force Push 结果验证 (最新分支已被删除)...

什么是单向数据流
单向数据流是一种数据流动的模式,通常用于前端框架(如 React、Vue 等)中。在单向数据流中,数据只能从一个方向流向另一个方向,不会出现数据的双向流动。这种模式有助于简化数据的管理和状态的维护,提高代码…...

Qt 线程池 QThreadPool
一.Qt 线程池 QThreadPool介绍 Qt线程池是一种管理多个线程的并发编程模型,通过使用线程池可以提高性能、控制并发度、提供任务队列和简化线程管理。 在Qt中,线程池的使用主要涉及以下几个步骤: 创建任务类:需要定义一个任务类&am…...

【兔子机器人】实现从初始状态到站立
一、遥想星空up主的方法 由于我有卡位结构,无法做到劈腿,而且底盘也不一样,无法使用此方法 但是其代码思想是可以借鉴的。 参考视频: 【【开源啦!】无刷轮腿平衡机器人】 【精准空降到 01:16】 https://www.bilibili…...

ImportError: cannot import name ‘open_filename‘ from ‘pdfminer.utils‘已搞定
报错内容 ImportError: cannot import name ‘open_filename’ from ‘pdfminer.utils’ 第一步:pip uninstall pdfminer 解决办法 pip3 install pdfminer.six注意不要 pip install pdfminer.six是安装不了的...

一文解决Word中公式插入问题(全免费/latex公式输入/texsWord)
分文不花,搞定你的word公式输入/texsWord完全使用指南 背景 碎碎念:折折腾腾至少装了几个小时,遇到了若干大坑。遇到的问题网上都搜索不到答案!!!就让我来当指路的小火柴吧。 本篇适用于在word中输入la…...

C语言实战——扫雷游戏
目录 1. 扫雷游戏分析和设计2.扫雷游戏的代码实现 1. 扫雷游戏分析和设计 1.1扫雷游戏的功能说明 使用控制台实现经典的扫雷游戏游戏可以通过菜单实现继续玩或者退出游戏扫雷的棋盘是9*9的格子默认随机布置10个雷可以排查雷 如果位置不是雷,就显示周围有几个雷 如果…...

.Net使用ElasticSearch
文章目录 前言主体内容一.Kibana中ElasticSearch的基础操作1.GET(查询)1.POST(新增)1.PUT(修改)1.DELET(删除) 二.在.Net中,对ElasticSearch进行基础操作1.DotNet连接Ela…...

HTML5、CSS3面试题(二)
上一章:HTML5、CSS3面试题(一) 哪些是块级元素那些是行内元素,各有什么特点 ?(必会) 行内元素: a、span、b、img、strong、input、select、lable、em、button、textarea 、selecting 块级元素࿱…...

sqllab第十一关通关笔记
知识点: 发现登录框就可以尝试注入登录框一般都是字符型注入通过注入可以获取其他表的信息绕过手段 单引号闭合联合注入也可以进行错误注入 首先看界面是一个登录框;通过admin admin登录进去,发现页面会把用户名和密码的登录信息打印出来&am…...

机械女生,双非本985硕,目前学了C 基础知识,转嵌入式还是java更好?
作为单片机项目开发的卖课佬,个人建议,先转嵌入式单片机开发方向,哈哈。 java我也学过,还学过oracle、mysql数据库,只是当时没做笔记,找不好充分的装逼证据了。 从实习通过业余时间,学到快正式毕…...

Python之字符串操作大全(29种方法)
本章详细介绍了常用的29种字符串操作方法及代码示例。 1. 重复输出字符串 print(x * 20) 输出:xxxxxxxxxxxxxxxxxxxx 2. 通过索引获取字符串 print(hello world[2:5]) 输出:llo 3. in 判断字符是否在字符串内 print(e in hello world) 输出&…...

ArcGIS学习(十五)用地适宜性评价
ArcGIS学习(十五)用地适宜性评价 本任务给大家带来的内容是用地适宜性评价。 用地适宜性评价是大家在平时工作中最常接触到的分析场景之一。尤其是在国土空间规划的大背景下,用地适宜性评价变得越来越重要。 此外,我们之前的任务主要是使用矢量数据进行分析。本案例是主讲…...

【matlab】如何将.mat文件与.nii文件互转
【matlab】如何将.mat文件与.nii文件互转 .mat转为.nii文件 有时候代码需要读取的是.nii文件,但是如何现有的数据是.mat格式,需要将.mata转化为.nii文件 1、先加载.mat文件 % 加载.mat文件 load(your_mat_file.mat); % 请将your_mat_file.mat替换为实…...

Uni-app开发Canvas当子组件示例,点点绘制图形
前言 使用Uni-app 实现封装一个Canvas渲染的子组件,实现通过传入两点绘制一条完整的路程 具体逻辑看我发的后端和数据库设计 C# 根据两点名称,寻找两短路程的最优解,【有数据库设计,完整代码】 即使不了解具体逻辑,该…...

从金蝶云星空到钉钉通过接口配置打通数据
从金蝶云星空到钉钉通过接口配置打通数据 对接系统金蝶云星空 金蝶K/3Cloud(金蝶云星空)是移动互联网时代的新型ERP,是基于WEB2.0与云技术的新时代企业管理服务平台。金蝶K/3Cloud围绕着“生态、人人、体验”,旨在帮助企业打造面…...

Unreal发布Android在刘海屏手机上不能全屏显示问题
Unreal 4.27发布Android在刘海屏手机上不能全屏显示问题 Android设置全屏刘海屏全屏设置4.27设置刘海屏在部分手机不能显示问题 Android设置全屏 AndroidManifest.xml文件配置 ...<activity android:name"com.epicgames.ue4.GameActivity" android:label"st…...

hive库表占用空间大小的命令
1、查每个hive表占用的空间大小 hdfs dfs -du -h /user/hive/warehouse 2、按占用空间大小降序排列 hdfs dfs -du /user/hive/warehouse/ipms.db | sort -nr 3、查某一个分区占用空间大小(单位G) hadoop fs -ls /user/hive/warehouse/ipms.db/dw_ft_se_nt_u_gen…...

关于go中的select
笔记仓库:gitee.com/xiaoyinhui 代码中的解释纯个人理解,有不对的望指出 package testsimport ("fmt""testing" )var uCnt int 0func TestSelece(t *testing.T) {// 对于 select 语句,在进入该语句时,会按源…...

【Node.js从基础到高级运用】十一、构建RESTful API
在本篇博客中,我们将综合之前讨论的内容,深入探索如何使用Node.js构建一个RESTful API。我们将重点讨论设计合理的API端点,展示如何通过代码实现这些端点,并指导如何使用Postman测试我们的API,确保其按预期工作。 前提…...

Python和MATLAB数字信号波形和模型模拟
要点 Python和MATLAB实现以下波形和模型模拟 以给定采样率模拟正弦信号,生成给定参数的方波信号,生成给定参数隔离矩形脉冲,生成并绘制线性调频信号。快速傅里叶变换结果释义:复数离散傅里叶变换、频率仓和快速傅里叶变换移位&am…...
华为OD技术C卷“测试用例执行计划”Java解答
描述 示例 算法思路1 整体思路是,先读取特性的优先级和测试用例覆盖的特性列表,然后计算每个测试用例的优先级,并将其与测试用例的索引存储到二维数组中。最后按照优先级和索引排序,输出测试用例的索引,即为执行顺序。…...

solana 入门 1
solana-co-learn Solana 开发学习笔记(一)——从 Hello World 出发 安装开发环境 windows下环境配置 wsl First start with installing WSL on your system. wsl --install wsl安装Ubuntu 列出可用的分发版 wsl.exe --list --online显示: 以下是可安装的有效…...

JavaEE之多线程(创建线程的五种写法)详解
😽博主CSDN主页: 小源_😽 🖋️个人专栏: JavaEE 😀努力追逐大佬们的步伐~ 目录 1. 前言 2. 操作系统"内核" 3. 创建线程的五种写法 (我们重点要掌握最后一种写法!!) 3.1 继承 Thread, 重写 run 3. 2 实现 Runnabl…...

ChatGPT国内能用吗?中国用户怎么才能使用ChatGPT?
与ChatGPT类似的国内网站,他们都能提供和ChatGPT相似的能力,而且可以在国内直接使用。 点击直达方式 百科GPT官网:baikegpt.cn ChatGPT是基于GPT-3.5架构的语言模型的一个实例,由OpenAI开发。以下是ChatGPT的发展历史࿱…...

集群保持集群负载均衡和hash一致性
集群保持负载均衡和一致性哈希是在构建分布式系统时经常涉及的两个重要概念。 负载均衡: - 在集群中,负载均衡是指将传入的请求有效地分发到不同的服务器上,以确保每台服务器都能够处理适量的流量,避免某些服务器过载而造成性能问…...

吴恩达深度学习笔记:神经网络的编程基础2.9-2.14
目录 第一门课:神经网络和深度学习 (Neural Networks and Deep Learning)第二周:神经网络的编程基础 (Basics of Neural Network programming)2.9 逻辑回归中的梯度下降(Logistic Regression Gradient Descent) 第一门课ÿ…...