【Docker】apache 容器化部署

Apache环境标准软件基于Bitnami apache 构建。当前版本为2.4.58

你可以通过轻云UC部署工具直接安装部署,也可以手动按如下文档操作,该项目已经全面开源,可以从如下环境获取
配置文件地址: https://gitee.com/qingplus/qingcloud-platform

QingHub部署

Hosting a static website

该/app路径配置为 Apache DocumentRoot。此处安装的内容由默认的default catch-all虚拟主机提供。

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 服务器。

配置

环境变量

可定制的环境变量
NameDescriptionDefault Value
APACHE_SERVER_TOKENSApache ServerTokens 指令。Prod
只读环境变量
NameDescriptionValue
WEB_SERVER_TYPE网络服务器类型apache
APACHE_BASE_DIRApache 安装目录。${BITNAMI_ROOT_DIR}/apache
APACHE_BIN_DIR二进制可执行文件的 Apache 目录。${APACHE_BASE_DIR}/bin
APACHE_CONF_DIRApache 配置目录。${APACHE_BASE_DIR}/conf
APACHE_DEFAULT_CONF_DIRApache 默认配置目录。${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_DIRApache 日志目录。${APACHE_BASE_DIR}/logs
APACHE_VHOSTS_DIR虚拟主机的 Apache 目录。${APACHE_CONF_DIR}/vhosts
APACHE_HTACCESS_DIRhtaccess 文件的 Apache 目录。${APACHE_VHOSTS_DIR}/htaccess
APACHE_CONF_FILEApache 配置的路径。${APACHE_CONF_DIR}/httpd.conf
APACHE_PID_FILEApache PID 文件的路径。${APACHE_TMP_DIR}/httpd.pid
APACHE_DAEMON_USERApache 系统用户。daemon
APACHE_DAEMON_GROUPApache 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

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

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

相关文章

《操作系统真相还原》读书笔记八:获取物理内存容量以及本书源代码

编写mbr.S汇编代码 ;LOADER_BASE_ADDR equ 0x900 ;LOADER_START_SECTOR equ 0x2 %include "boot.inc"SECTION MBR vstart0x7c00mov ax,csmov ds,axmov es,axmov ss,axmov fs,axmov sp,0x7c00mov ax,0xb800mov gs,axmov ax,0x0600mov bx,0x0700mov cx,0mov dx, 184fh…

力扣图论篇

以下思路来自代码随想录以及官方题解。 文章目录 797.所有可能的路径200.岛屿数量130.被围绕的区域1020.飞地的数量 797.所有可能的路径 给你一个有 n 个节点的 有向无环图&#xff08;DAG&#xff09;&#xff0c;请你找出所有从节点 0 到节点 n-1 的路径并输出&#xff08;不…

USB协议学习(三)大容量存储设备SCSI协议分析

笔者来简单介绍一下SCSI得协议命令 1、SCSI协议认识 SCSI&#xff1a;Small Computer System Interface&#xff0c;用于计算机外部设备得接口标准&#xff0c;定义了与外部设备得一套协议。SCSI标准协议族支持很多钟SCSI设备&#xff0c;像盘&#xff0c;打印机&#xff0c;扫…

Ubuntu23.10安装FFmpeg及编译FFmpeg源码

安装FFmpeg: 打开终端: 输入 sudo apt install ffmpeg 安装成功: 验证FFmpeg 默认安装位置与库与头文件位置 使用FFmpeg源码编译: 1.安装YASM sudo apt-get install yasm

[mmucache]-ARMV8-aarch64的虚拟内存(mmutlbcache)介绍-概念扫盲

&#x1f525;博客主页&#xff1a; 小羊失眠啦. &#x1f3a5;系列专栏&#xff1a;《C语言》 《数据结构》 《C》 《Linux》 《Cpolar》 ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 思考: 1、cache的entry里都是有什么&#xff1f; 2、TLB的entry里都是有什么? 3、MMU操作…

10-ARM gicv3/gicv4的总结-基础篇

目录 1、gic的版本2、GICv3/gicv4的模型图3、gic中断号的划分4、GIC连接方式5、gic的状态6、gic框架7、gic Configuring推荐 本文转自 周贺贺&#xff0c;baron&#xff0c;代码改变世界ctw&#xff0c;Arm精选&#xff0c; armv8/armv9&#xff0c;trustzone/tee&#xff0c;s…

遗传算法(GA)求解基于栅格地图的机器人最优路径规划,可以自行修改地图(提供MATLAB代码)

通过栅格法建立栅格地图作为机器人路径规划的工作环境,采用遗传算法作为机器人路径搜索的规则.将所有机器人放置于初始位置.经过NC次无碰撞迭代运动找到最优路径.到达目标位置.为防止机器人在路径搜索过程中没有达到最大迭代次数时路径大小已不发生变化而陷入局部最优。 一、部…

JavaWeb-Maven基础

Maven是专门用于管理和构建Java项目的工具&#xff0c;是 Apache 下的一个纯 Java 开发的开源项目&#xff0c;基于项目对象模型&#xff08;POM&#xff09;概念。先来学习一下Maven基础&#xff0c;等后面学完开发框架后再学Maven高级&#xff0c;这次的内容如下 一、概述 …

Linux学习——线程的控制

目录 ​编辑 一&#xff0c;线程的创建 二&#xff0c;线程的退出 1&#xff0c;在子线程内return 2,使用pthread_exit(void*) 三&#xff0c;线程等待 四&#xff0c;线程获取自己的id值 五&#xff0c;线程取消 六&#xff0c;线程分离 一&#xff0c;线程的创建 在对…

企微hook源码

企微hook源码已经在QQ群内开源。速度进群下载&#xff0c;避免和谐。 QQ群&#xff1a;649480745 //pc端发送消息回调 void RecvPcMsgRes(DWORD eax) { // OutputDebugStringA("pc发送消息"); PWX_STRING pMsgPb (PWX_STRING)(eax);//消息pb结构体 string pbDa…

打卡--MySQL8.0 一(单机部署)

一路走来&#xff0c;所有遇到的人&#xff0c;帮助过我的、伤害过我的都是朋友&#xff0c;没有一个是敌人。如有侵权&#xff0c;请留言&#xff0c;我及时删除&#xff01; MySQL 8.0 简介 MySQL 8.0与5.7的区别主要体现在&#xff1a;1、性能提升&#xff1b;2、新的默认…

鸿蒙开发学习入门教程之环境配置

最近鸿蒙开发越来越火&#xff0c;各个大厂都有鸿蒙版本的计划和宣传&#xff0c;看这个趋势&#xff0c;可能会在几年内发展壮大&#xff0c;为我们移动端码农开辟一片新的职场。所以现在开始学起来还是很有必要的。今天就一起开始配置环境搞起来吧。 首先&#xff0c;找到官…

用户管理【MySQL】

文章目录 查看用户信息创建用户修改密码删除用户授予权限收回权限 查看用户信息 在名为mysql的数据库中有一个表user维护着 MySQL 的用户信息。 其中&#xff1a; user&#xff1a; 表示该用户的用户名。host&#xff1a; 表示该用户可以从哪个主机登录&#xff0c;localhost…

【Spark编程基础】实验一Spark编程初级实践(附源代码)

文章目录 一、实验目的二、实验平台三、实验内容和要求1. 计算级数2. 模拟图形绘制3.统计学生成绩 一、实验目的 1.掌握 Scala 语言的基本语法、数据结构和控制结构&#xff1b; 2.掌握面向对象编程的基础知识&#xff0c;能够编写自定义类和特质&#xff1b; 3.掌握函数式编程…

SSL证书:构建网络安全的基石

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

从Pandas到Polars :数据的ETL和查询

对于我们日常的数据清理、预处理和分析方面的大多数任务&#xff0c;Pandas已经绰绰有余。但是当数据量变得非常大时&#xff0c;它的性能开始下降。 本文将介绍如何将日常的数据ETL和查询过滤的Pandas转换成polars。 图片 Polars的优势 Polars是一个用于Rust和Python的Data…

简单接入电商API接口|轻松实现实时采集淘宝、抖音、快手、1688商品,挖掘潜力款

今天给大家带来一款非常实用的电商API接口&#xff0c;这款数据采集接口支持淘宝采集、抖音采集、快手采集、1688采集以及潜力款分析&#xff0c;功能强大&#xff0c;助您在电商领域更上一层楼。 首先&#xff0c;我们来了解一下淘宝采集功能。作为国内最大的电商平台&#xf…

基于Java+springboot+VUE+redis实现的前后端分类版网上商城项目

基于Java springbootVUEredis实现的前后端分类版网上商城项目 博主介绍&#xff1a;多年java开发经验&#xff0c;专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 央顺技术团队 Java毕设项目精品实战案例《1000套》 欢迎点赞 收藏 ⭐留言…

Contact-GraspNet: Efficient 6-DoF Grasp Generationin Cluttered Scenes

总结 提出一种端到端的网络&#xff0c;解决复杂场景中对未知物体的抓取。将六自由度抓取投影到观察到的点云中的接触点&#xff0c;表示只有4-DoF。 摘要 我们提出了一个端到端网络&#xff0c;可以直接从场景的深度记 录中有效地生成六自由度平行颚抓取的分布。 我们的新…

_note_01

1.什么是跨平台 跨平台是指一个应用程序或一个编程语言&#xff0c;可以在不同的操作系统或平台上运行&#xff0c;而不需要对代码进行修改或重新编译。 跨平台应用程序或编程语言的设计和实现可以使开发者减少对特定平台的依赖&#xff0c;从而降低维护和开发的成本。同时&am…