在CentOS 7系统中,Apache(HTTP服务器)是最常用的Web服务器软件之一,它稳定、可靠且功能强大,广泛用于托管网站和Web应用程序,本文将详细介绍如何在CentOS 7上安装、配置和管理Apache服务器,包括虚拟主机配置、SSL证书设置、安全优化等关键内容。

安装Apache
确保系统已更新至最新状态,打开终端,运行以下命令:
sudo yum update -y sudo yum install httpd -y
安装完成后,启动Apache服务并设置开机自启:
sudo systemctl start httpd sudo systemctl enable httpd
检查服务状态:
sudo systemctl status httpd
若显示active (running),则表示安装成功,默认情况下,Apache的根目录位于/var/www/html,配置文件存放在/etc/httpd/conf/和/etc/httpd/conf.d/目录下。
基本配置
Apache的主配置文件是/etc/httpd/conf/httpd.conf,编辑该文件前建议备份:
sudo cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.bak
使用vim或nano打开文件:

sudo vim /etc/httpd/conf/httpd.conf
关键配置项包括:
ServerName:设置服务器域名或IP地址,例如ServerName 192.168.1.100:80。DocumentRoot:指定网站根目录,默认为/var/www/html。DirectoryIndex:定义默认首页文件,如DirectoryIndex index.html index.php。Listen:指定监听端口,默认为80(HTTP)和443(HTTPS)。
修改后保存文件,并重启Apache使配置生效:
sudo systemctl restart httpd
虚拟主机配置
虚拟主机允许在同一台服务器上托管多个网站,假设需要配置两个域名:example.com和test.com。
- 创建网站目录:
sudo mkdir -p /var/www/example.com sudo mkdir -p /var/www/test.com
- 设置目录权限:
sudo chown -R apache:apache /var/www/example.com sudo chown -R apache:apache /var/www/test.com sudo chmod -R 755 /var/www
- 创建测试页面:
echo "<h1>Example.com</h1>" | sudo tee /var/www/example.com/index.html echo "<h1>Test.com</h1>" | sudo tee /var/www/test.com/index.html
- 配置虚拟主机文件:
在/etc/httpd/conf.d/目录下创建配置文件,例如example.com.conf:<VirtualHost *:80> ServerName example.com ServerAlias www.example.com DocumentRoot /var/www/example.com ErrorLog /var/log/httpd/example.com_error.log CustomLog /var/log/httpd/example.com_access.log combined </VirtualHost>
为
test.com创建类似配置文件,保存后重启Apache:sudo systemctl restart httpd
- 配置DNS解析:
确保域名的DNS记录指向服务器的IP地址。
SSL证书配置
启用HTTPS需要SSL证书,可通过Let’s Encrypt免费获取。
- 安装Certbot:
sudo yum install certbot python2-certbot-apache -y
- 获取证书:
sudo certbot --apache -d example.com -d www.example.com
按照提示完成邮箱设置和条款同意,Certbot会自动修改Apache配置,启用HTTP/2和重定向到HTTPS。

安全优化
- 禁用目录列表:
在httpd.conf或虚拟主机配置中添加:Options -Indexes
- 限制访问:
通过.htaccess文件或配置块限制IP访问:<Directory "/var/www/example.com"> Require ip 192.168.1.0/24 </Directory>
- 隐藏Apache版本:
编辑httpd.conf,添加:ServerTokens Prod ServerSignature Off
- 防火墙设置:
允许HTTP和HTTPS流量:sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --permanent --add-service=https sudo firewall-cmd --reload
日志管理
Apache的日志文件位于/var/log/httpd/,常用日志包括:
access_log:记录访问请求。error_log:记录错误信息。
可通过logrotate工具自动管理日志轮转,编辑/etc/logrotate.d/httpd文件调整配置。
常见问题排查
- 权限问题:确保网站目录和文件权限正确,避免
403 Forbidden错误。 - 端口冲突:检查其他服务是否占用80或443端口,使用
netstat -tulnp查看。
FAQs
Q1: 如何修改Apache默认端口?
A1: 编辑/etc/httpd/conf/httpd.conf文件,修改Listen指令的端口号(如Listen 8080),保存后重启Apache,同时确保防火墙允许新端口访问。
Q2: 如何实现HTTP自动跳转HTTPS?
A2: 在虚拟主机配置中添加以下内容:
<VirtualHost *:80>
ServerName example.com
Redirect permanent / https://example.com/
</VirtualHost>
<VirtualHost *:443>
ServerName example.com
SSLEngine on
SSLCertificateFile /path/to/cert.pem
SSLCertificateKeyFile /path/to/key.pem
</VirtualHost> 【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复