参考资料

  1. Traefik 是一个现代化的反向代理和负载均衡工具
  2. Squid是一款开源的代理服务器和Web缓存服务器
  3. Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时环境,用于构建高性能
  4. Silverpeas 是一个开源的企业协作平台
  5. Docker与Kubernetes的关系?
  6. Docker Compose的作用是什么?
  7. PyPy 是一个 Python 解释器的替代实现,使用 RPython(受限 Python)编写
  8. Cloudreve 与 OnlyOffice 集成配置指南

httpd简介

httpd(Apache HTTP Server)是Apache软件基金会开发的开源Web服务器软件,广泛用于托管网站和应用。支持跨平台(Linux、Windows、macOS等),模块化设计,功能丰富。


特点

  1. 跨平台:支持多种操作系统。

  2. 模块化:通过动态加载模块扩展功能(如SSL、压缩等)。

  3. 高性能:支持多处理模块(MPM)优化并发处理。

  4. 安全性:提供灵活的访问控制和加密支持(如HTTPS)。

  5. 兼容性:支持CGI、FastCGI、PHP等多种后端技术。


最新更新内容及时间

  • 最新稳定版本:2.4.58(截至2023年10月更新)

    • 修复CVE-2023-43622等安全漏洞。

    • 优化内存管理和日志功能。

    • 完整更新日志:Apache 2.4.58 Changelog


下载与官网


文档地址


Docker安装示例

# 拉取官方镜像
docker pull httpd:2.4

# 运行容器(映射80端口)
docker run -d --name my-httpd -p 8080:80 httpd:2.4

访问 http://localhost:8080 测试默认页面。


.yaml配置示例

(注:httpd通常使用.conf文件,此处假设为YAML格式转换示例)

# httpd虚拟主机配置示例(伪YAML格式)
ServerName: example.com
Listen: 80
DocumentRoot: "/var/www/html"
<Directory "/var/www/html">
    Options: Indexes FollowSymLinks
    AllowOverride: All
    Require: all granted
</Directory>

实际配置需使用.conf文件(如 httpd.confvhosts.conf)。


常见错误及解决

  1. 端口冲突

    • 错误:(98)Address already in use

    • 解决:修改Listen 80为其他端口,或终止占用端口的进程。

  2. 权限不足

    • 错误:(13)Permission denied

    • 解决:确保DocumentRoot目录权限为755,用户为www-data(或apache)。

  3. 模块未加载

    • 错误:Invalid command 'SSLEngine'

    • 解决:启用SSL模块:a2enmod ssl && service apache2 restart

  4. 404 Not Found

    • 检查DocumentRoot路径是否正确,文件是否存在。


备注

  • 配置文件路径:

    • Linux: /etc/httpd/conf/httpd.conf/etc/apache2/apache2.conf

    • Windows: C:\Program Files\Apache\conf\httpd.conf