温馨提示×

Ubuntu Apache配置指南

小樊
38
2025-12-19 00:51:32
栏目: 智能运维

Ubuntu 上 Apache 的部署、虚拟主机、SSL 与运维要点

一 安装与基础管理

  • 更新索引并安装:sudo apt update && sudo apt install apache2 -y
  • 启动与开机自启:sudo systemctl start apache2 && sudo systemctl enable apache2
  • 常用管理:sudo systemctl status apache2;sudo systemctl reload apache2;sudo systemctl restart apache2
  • 防火墙放行:sudo ufw allow ‘Apache Full’(如仅 HTTP/HTTPS 分别放行,可用 sudo ufw allow http、sudo ufw allow https)
  • 访问验证:在浏览器打开 http://服务器IP 或 http://localhost,看到 Apache 欢迎页即正常

二 目录结构与配置文件

  • 配置目录与作用
    • /etc/apache2/apache2.conf:主配置文件
    • /etc/apache2/ports.conf:监听端口(如 80/443
    • /etc/apache2/sites-available/:可用站点配置
    • /etc/apache2/sites-enabled/:已启用站点的软链接
    • /etc/apache2/mods-available/ 与 /etc/apache2/mods-enabled/:可用/已启用模块
  • 常用模块管理
    • 启用:sudo a2enmod 模块名(如 rewrite、ssl)
    • 禁用:sudo a2dismod 模块名
  • 日志路径
    • 访问日志:/var/log/apache2/access.log
    • 错误日志:/var/log/apache2/error.log

三 虚拟主机配置步骤

  • 创建站点目录与示例页
    • sudo mkdir -p /var/www/example.com/public_html
    • echo “

      Hello example.com

      ” | sudo tee /var/www/example.com/public_html/index.html
  • 创建站点配置
    • sudo nano /etc/apache2/sites-available/example.com.conf
    • 示例内容:
      <VirtualHost *:80>
          ServerAdmin webmaster@example.com
          ServerName example.com
          ServerAlias www.example.com
          DocumentRoot /var/www/example.com/public_html
          ErrorLog ${APACHE_LOG_DIR}/error.log
          CustomLog ${APACHE_LOG_DIR}/access.log combined
      
          <Directory /var/www/example.com/public_html>
              Options Indexes FollowSymLinks
              AllowOverride All
              Require all granted
          </Directory>
      </VirtualHost>
      
  • 启用站点与可选禁用默认站点
    • sudo a2ensite example.com.conf
    • 如需使用自定义站点为默认,可 sudo a2dissite 000-default.conf
  • 检查语法并生效
    • sudo apache2ctl configtest
    • sudo systemctl reload apache2
  • 权限建议
    • 若由 www-data 运行:sudo chown -R www-data:www-data /var/www/example.com;sudo chmod -R 755 /var/www/example.com

四 启用 HTTPS 与自动化证书

  • 安装 Certbot 并获取证书
    • sudo apt install certbot python3-certbot-apache -y
    • sudo certbot --apache -d example.com -d www.example.com
  • 自动续期
    • Certbot 默认会添加 systemd timercron 任务,定期自动续期;可用 sudo systemctl list-timers 检查
  • 手动续期测试
    • sudo certbot renew --dry-run

五 性能与安全优化

  • 性能
    • 启用压缩:sudo a2enmod deflate && sudo systemctl reload apache2
    • 启用缓存(按需):sudo a2enmod cache;sudo a2enmod cache_disk;sudo systemctl reload apache2
  • 安全
    • 隐藏版本信息:在 /etc/apache2/apache2.conf 或相应配置段加入
      • ServerTokens Prod
      • ServerSignature Off
    • 禁用目录列表:在 Directory 段使用 Options -Indexes
    • 进阶防护(可选):sudo apt install libapache2-mod-security2 libapache2-mod-evasive;sudo a2enmod security2;sudo a2enmod evasive;sudo systemctl reload apache2
  • 故障排查
    • 语法检查:sudo apache2ctl configtest
    • 实时查看错误日志:sudo tail -f /var/log/apache2/error.log

0