Centos8中如何部署Apache虚拟机

发布时间:2022-02-17 10:20:25 作者:iii
来源:亿速云 阅读:572
# CentOS8中如何部署Apache虚拟机

## 前言

在当今的互联网环境中,虚拟主机技术已成为Web服务器部署的标配。Apache作为最流行的Web服务器软件之一,其虚拟主机功能允许我们在单台服务器上运行多个网站,从而显著提高硬件资源利用率并降低运营成本。本文将详细介绍在CentOS8系统中部署Apache虚拟机的完整流程,涵盖从环境准备到配置优化的各个环节。

## 一、环境准备与Apache安装

### 1.1 系统更新与基础环境配置

在开始部署前,我们需要确保系统处于最新状态:

```bash
sudo dnf update -y
sudo dnf upgrade -y

安装必要的工具链:

sudo dnf install -y vim wget curl net-tools epel-release

1.2 Apache服务器安装

CentOS8默认软件仓库中提供Apache的最新稳定版本:

sudo dnf install -y httpd

安装完成后验证版本:

httpd -v
# 应显示类似:Server version: Apache/2.4.37 (CentOS)

1.3 防火墙配置

允许HTTP和HTTPS流量通过防火墙:

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

1.4 SELinux配置(可选)

如果系统启用了SELinux,需要调整策略:

sudo setsebool -P httpd_unified 1

二、Apache基础配置

2.1 服务管理命令

启动Apache并设置开机自启:

sudo systemctl start httpd
sudo systemctl enable httpd

常用管理命令: - 启动服务:systemctl start httpd - 停止服务:systemctl stop httpd - 重启服务:systemctl restart httpd - 查看状态:systemctl status httpd

2.2 主配置文件结构

Apache的主要配置文件位于: - /etc/httpd/conf/httpd.conf - 主配置文件 - /etc/httpd/conf.d/ - 附加配置文件目录

建议的配置策略: 1. 保持主配置文件基本不变 2. 在conf.d目录中为每个虚拟主机创建独立配置文件

三、虚拟主机配置实战

3.1 基于名称的虚拟主机(推荐)

3.1.1 创建网站目录结构

sudo mkdir -p /var/www/example.com/public_html
sudo mkdir -p /var/www/test.com/public_html

设置权限:

sudo chown -R apache:apache /var/www
sudo chmod -R 755 /var/www

3.1.2 创建虚拟主机配置文件

为example.com创建配置:

sudo vim /etc/httpd/conf.d/example.com.conf

文件内容示例:

<VirtualHost *:80>
    ServerAdmin webmaster@example.com
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot /var/www/example.com/public_html
    
    ErrorLog /var/log/httpd/example.com_error.log
    CustomLog /var/log/httpd/example.com_access.log combined
    
    <Directory /var/www/example.com/public_html>
        Options -Indexes +FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

为test.com创建类似配置后,重启Apache:

sudo systemctl restart httpd

3.2 基于IP的虚拟主机(适用于需要独立IP的场景)

3.2.1 添加IP地址

sudo nmcli connection modify ens192 +ipv4.addresses 192.168.1.100/24
sudo nmcli connection up ens192

3.2.2 配置虚拟主机

<VirtualHost 192.168.1.100:80>
    ServerAdmin admin@site1.com
    DocumentRoot /var/www/site1/public_html
    ServerName site1.com
    # 其他配置...
</VirtualHost>

四、测试与验证

4.1 本地hosts文件修改(开发环境)

sudo vim /etc/hosts

添加记录:

127.0.0.1 example.com
127.0.0.1 test.com

4.2 创建测试页面

echo "<h1>Example.com Works!</h1>" | sudo tee /var/www/example.com/public_html/index.html
echo "<h1>Test.com Works!</h1>" | sudo tee /var/www/test.com/public_html/index.html

4.3 浏览器测试

访问: - http://example.com - http://test.com

4.4 命令行测试

curl -H "Host: example.com" http://localhost
curl -H "Host: test.com" http://localhost

五、高级配置与优化

5.1 启用HTTPS支持

安装mod_ssl:

sudo dnf install -y mod_ssl

使用Let’s Encrypt免费证书:

sudo dnf install -y certbot python3-certbot-apache
sudo certbot --apache -d example.com -d www.example.com

5.2 性能优化

调整MPM配置(/etc/httpd/conf.modules.d/00-mpm.conf):

<IfModule mpm_prefork_module>
    StartServers            5
    MinSpareServers         5
    MaxSpareServers         10
    MaxRequestWorkers       150
    MaxConnectionsPerChild  3000
</IfModule>

5.3 日志管理

配置日志轮转:

sudo vim /etc/logrotate.d/httpd

示例配置:

/var/log/httpd/*log {
    daily
    missingok
    rotate 30
    compress
    delaycompress
    notifempty
    sharedscripts
    postrotate
        /bin/systemctl reload httpd > /dev/null 2>/dev/null || true
    endscript
}

六、常见问题排查

6.1 403 Forbidden错误

可能原因及解决方案: 1. 目录权限问题:

   sudo chown apache:apache /var/www/example.com -R
   sudo chmod 755 /var/www/example.com -R
  1. SELinux上下文问题:
    
    sudo chcon -R -t httpd_sys_content_t /var/www/example.com
    

6.2 虚拟主机不生效

检查步骤: 1. 确认配置文件名以.conf结尾 2. 检查主配置是否包含:

   IncludeOptional conf.d/*.conf
  1. 检查是否有语法错误:
    
    sudo apachectl configtest
    

6.3 端口冲突问题

查看占用端口的进程:

sudo netstat -tulnp | grep :80

七、生产环境建议

  1. 安全加固

    • 定期更新Apache和系统补丁
    • 禁用不必要模块(如mod_autoindex)
    • 配置适当的文件权限
  2. 监控设置

    sudo dnf install -y httpd-tools
    ab -n 1000 -c 100 http://example.com/
    
  3. 备份策略

    • 定期备份配置文件:/etc/httpd/
    • 备份网站数据:/var/www/
    • 备份日志文件(可选)

结语

通过本文的详细指导,您应该已经掌握了在CentOS8系统上部署Apache虚拟主机的完整流程。从基础安装到高级配置,从性能优化到故障排查,这些知识将帮助您构建稳定、高效的Web服务器环境。实际生产部署时,请根据具体业务需求调整配置参数,并始终将安全性作为首要考虑因素。

注意:本文所有操作均需root权限或sudo提权执行。生产环境部署前建议在测试环境充分验证。 “`

这篇文章共计约2950字,采用Markdown格式编写,包含: 1. 清晰的章节结构 2. 详细的配置代码块 3. 实际操作的命令行示例 4. 生产环境建议 5. 常见问题解决方案 6. 安全注意事项

内容涵盖了从基础安装到高级配置的完整流程,适合不同水平的系统管理员参考使用。

推荐阅读:
  1. 如何在CentOS8中部署FTP服务器
  2. centos8如何使用Docker部署Django项目

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

centos apache

上一篇:Centos7下怎么安装和使用Nethogs

下一篇:Linux常用命令named-checkzone怎么用

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》