凌峰创科服务平台

Linux Apache服务器配置如何高效优化?

目录

  1. 第一部分:安装 Apache
  2. 第二部分:基本配置与文件结构
  3. 第三部分:创建虚拟主机
  4. 第四部分:启用 HTTPS (SSL/TLS)
  5. 第五部分:安全优化
  6. 第六部分:性能优化
  7. 第七部分:日志管理
  8. 第八部分:常见问题与故障排查

第一部分:安装 Apache

1 在 Ubuntu/Debian 上安装

使用 apt 包管理器。

Linux Apache服务器配置如何高效优化?-图1
(图片来源网络,侵删)
# 更新软件包列表
sudo apt update
# 安装 Apache2
sudo apt install apache2
# 检查 Apache 服务状态
sudo systemctl status apache2

2 在 CentOS/RHEL 上安装

使用 yumdnf 包管理器。

# 更新软件包列表 (对于 CentOS 7/8, RHEL 7/8)
sudo yum update
# 安装 httpd (Apache 的名称)
sudo yum install httpd
# 对于 CentOS 8/RHEL 8 及更新版本,也可以使用 dnf
# sudo dnf install httpd
# 启动 Apache 服务并设置为开机自启
sudo systemctl start httpd
sudo systemctl enable httpd
# 检查 Apache 服务状态
sudo systemctl status httpd

3 验证安装

安装完成后,打开浏览器,访问服务器的 IP 地址或域名,你应该能看到 Apache 的默认欢迎页面。

# 查看服务器的 IP 地址
ip addr show

访问 http://<你的服务器IP>,应该看到 "It works!" 或类似的页面。


第二部分:基本配置与文件结构

了解 Apache 的核心文件和目录是配置的基础。

Linux Apache服务器配置如何高效优化?-图2
(图片来源网络,侵删)

1 主要配置文件

  • 主配置文件: /etc/apache2/apache2.conf (Ubuntu/Debian) 或 /etc/httpd/conf/httpd.conf (CentOS/RHEL)

    这是 Apache 的核心配置文件,包含了全局设置,如服务器根目录、端口、进程模型等。

  • 站点可用/配置目录:

    • Ubuntu/Debian: /etc/apache2/sites-available/ (存放可用站点配置) 和 /etc/apache2/sites-enabled/ (存放已启用的站点配置,通常是 sites-available 中文件的软链接)。
    • CentOS/RHEL: /etc/httpd/conf.d/ (所有自定义的虚拟主机配置文件都放在这里,文件以 .conf
  • 模块目录:

    Linux Apache服务器配置如何高效优化?-图3
    (图片来源网络,侵删)
    • Ubuntu/Debian: /etc/apache2/mods-available//etc/apache2/mods-enabled/
    • CentOS/RHEL: /etc/httpd/conf.modules.d/
  • Web 根目录:

    • 默认存放网站文件的地方。
    • Ubuntu/Debian: /var/www/html/
    • CentOS/RHEL: /var/www/html/

2 常用管理命令

# Ubuntu/Debian
sudo systemctl start apache2    # 启动
sudo systemctl stop apache2     # 停止
sudo systemctl restart apache2  # 重启 (配置修改后常用)
sudo systemctl reload apache2   # 优雅重载 (不中断连接,重新读取配置)
sudo systemctl status apache2   # 查看状态
# 启用/禁用站点
sudo a2ensite your-site.conf    # 启用站点 (创建软链接)
sudo a2dissite your-site.conf   # 禁用站点 (删除软链接)
# 启用/禁用模块
sudo a2enmod mod_rewrite        # 启用 rewrite 模块
sudo a2dismod mod_rewrite       # 禁用 rewrite 模块
# 测试配置文件语法
sudo apache2ctl configtest      # Ubuntu/Debian
sudo apachectl configtest       # CentOS/RHEL
# CentOS/RHEL
sudo systemctl start httpd      # 启动
sudo systemctl stop httpd       # 停止
sudo systemctl restart httpd    # 重启
sudo systemctl reload httpd    # 优雅重载
sudo systemctl status httpd     # 查看状态
# 测试配置文件语法
sudo apachectl configtest

第三部分:创建虚拟主机

虚拟主机允许你在同一台服务器上托管多个网站,每个网站有独立的域名和配置。

我们将创建两个示例站点:example.comtest.com

1 创建网站目录和文件

# 为 example.com 创建目录
sudo mkdir -p /var/www/example.com/html
sudo chown -R $USER:$USER /var/www/example.com/html
sudo chmod -R 755 /var/www/example.com/html
# 创建 index.html 文件
echo "<h1>Welcome to example.com</h1>" | sudo tee /var/www/example.com/html/index.html
# 为 test.com 创建目录
sudo mkdir -p /var/www/test.com/html
sudo chown -R $USER:$USER /var/www/test.com/html
sudo chmod -R 755 /var/www/test.com/html
# 创建 index.html 文件
echo "<h1>Welcome to test.com</h1>" | sudo tee /var/www/test.com/html/index.html

2 创建虚拟主机配置文件

对于 Ubuntu/Debian:

  1. sites-available 目录下创建配置文件。

    sudo nano /etc/apache2/sites-available/example.com.conf
  2. <VirtualHost *:80>
        ServerAdmin webmaster@example.com
        ServerName example.com
        ServerAlias www.example.com
        DocumentRoot /var/www/example.com/html
        <Directory /var/www/example.com/html>
            Options Indexes FollowSymLinks
            AllowOverride All
            Require all granted
        </Directory>
        ErrorLog ${APACHE_LOG_DIR}/error_example.com.log
        CustomLog ${APACHE_LOG_DIR}/access_example.com.log combined
    </VirtualHost>
  3. 启用站点并测试。

    sudo a2ensite example.com.conf
    sudo apache2ctl configtest
    # 输出应为 "Syntax OK"
    sudo systemctl reload apache2

对于 CentOS/RHEL:

  1. conf.d 目录下创建配置文件。

    sudo nano /etc/httpd/conf.d/example.com.conf
  2. 粘贴与上面 Ubuntu/Debian 中相同的内容(注意 ServerNameServerAlias)。

  3. 测试并重启 Apache。

    sudo apachectl configtest
    sudo systemctl restart httpd

3 配置本地hosts文件进行测试 (可选)

如果你没有真实域名,可以在本地电脑的 hosts 文件 (C:\Windows\System32\drivers\etc\hosts on Windows, /etc/hosts on Linux/Mac) 中添加以下行,将域名指向你的服务器 IP:

<你的服务器IP>   example.com
<你的服务器IP>   www.example.com
<你的服务器IP>   test.com

你应该可以通过浏览器访问 http://example.comhttp://test.com 看到不同的页面了。


第四部分:启用 HTTPS (SSL/TLS)

现代网站必须使用 HTTPS,我们将使用免费的 Let's Encrypt 证书。

1 安装 Certbot

Certbot 是一个自动获取和更新 Let's Encrypt 证书的工具。

Ubuntu/Debian:

sudo apt install certbot python3-certbot-apache

CentOS/RHEL:

# 首先安装 EPEL 仓库
sudo yum install epel-release
# 然后安装 Certbot
sudo yum install certbot python3-certbot-apache

2 获取并安装证书

运行 Certbot,它会自动检测你的 Apache 配置并引导你完成。

sudo certbot --apache -d example.com -d www.example.com

命令会:

  1. 提示你输入邮箱地址。
  2. 询问你是否同意服务条款。
  3. 询问你是否将 HTTP 流量自动重定向到 HTTPS(强烈推荐选择 Yes)。
  4. 自动获取证书、修改 Apache 配置(启用 ssl 模块,创建 SSL 虚拟主机配置)并重启 Apache。

3 自动续订证书

Let's Encrypt 证书有效期为 90 天,Certbot 会设置一个定时任务来自动续订。

你可以手动测试续订过程:

sudo certbot renew --dry-run
分享:
扫描分享到社交APP
上一篇
下一篇