凌峰创科服务平台

CentOS7 Web服务器如何配置部署?

在CentOS 7系统中搭建Web服务器是许多运维人员和开发者的常见需求,CentOS 7作为稳定可靠的Linux发行版,提供了丰富的软件包和工具,能够高效支持Web服务的部署与运行,以下将从环境准备、服务安装、配置优化、安全加固及故障排查等方面详细介绍CentOS 7 Web服务器的搭建与使用流程。

CentOS7 Web服务器如何配置部署?-图1
(图片来源网络,侵删)

环境准备

在开始部署Web服务器前,需确保系统基础环境符合要求,通过yum update -y命令更新系统所有软件包至最新版本,修复潜在漏洞并提升稳定性,检查系统网络配置,确保服务器能够正常访问外网,可通过ping www.baidu.com测试网络连通性,若使用静态IP,需编辑/etc/sysconfig/network-scripts/ifcfg-eth0文件,配置BOOTPROTO=static,并设置IPADDRNETMASKGATEWAYDNS1等参数,重启网络服务使配置生效,关闭防火墙和SELinux(临时关闭使用setenforce 0,永久修改需编辑/etc/selinux/config文件将SELINUX=enforcing改为SELINUX=disabled),避免因权限问题导致服务无法启动,待服务配置完成后再根据安全策略调整防火墙规则和SELinux设置。

安装Web服务软件

CentOS 7常用的Web服务器软件包括Apache(httpd)和Nginx,此处以Apache为例进行说明,通过yum install -y httpd命令安装Apache服务,安装完成后使用systemctl start httpd启动服务,并执行systemctl enable httpd设置开机自启,验证服务是否成功运行,可通过浏览器访问服务器IP地址,若显示Apache默认测试页面,则说明服务启动正常,若需使用Nginx,可通过yum install -y nginx安装,启动命令为systemctl start nginx,操作流程与Apache类似。

Web服务配置

虚拟主机配置

Apache支持基于IP、端口和域名的虚拟主机配置,以下以域名虚拟主机为例,编辑/etc/httpd/conf/httpd.conf文件,在文件末尾添加以下内容:

<VirtualHost *:80>
    ServerAdmin admin@example.com
    DocumentRoot "/var/www/example.com"
    ServerName example.com
    ErrorLog "logs/example.com-error_log"
    CustomLog "logs/example.com-access_log" common
</VirtualHost>

创建网站根目录mkdir -p /var/www/example.com,并设置权限chown -R apache:apache /var/www/example.com,上传网站文件至该目录后,重启Apache服务systemctl restart httpd,即可通过域名访问网站。

目录权限与索引设置

在虚拟主机配置中,可通过Options Indexes FollowSymLinks启用目录列表功能,若需禁用则将Indexes删除,针对敏感目录,可添加Require all denied限制访问,或使用Require ip 192.168.1.0/24仅允许特定IP访问,配置/var/www/example.com/admin目录仅允许内网访问:

<Directory "/var/www/example.com/admin">
    Require ip 192.168.1.0/24
</Directory>

SSL证书配置(HTTPS)

为网站启用HTTPS可提升安全性,通过yum install -y mod_ssl安装SSL模块,然后准备证书文件(可自签或购买权威证书),编辑/etc/httpd/conf.d/ssl.conf文件,修改以下配置:

SSLCertificateFile /etc/pki/tls/certs/example.com.crt
SSLCertificateKeyFile /etc/pki/tls/private/example.com.key
SSLCertificateChainFile /etc/pki/tls/certs/example.com.ca-bundle

重启Apache服务后,访问https://example.com即可验证HTTPS是否生效。

性能优化与安全加固

性能优化

  • 启用压缩:编辑/etc/httpd/conf.modules.d/00-base.conf,确保mod_deflate模块加载,在虚拟主机配置中添加:
    <IfModule mod_deflate.c>
        AddOutputFilterByType DEFLATE text/plain text/html text/xml text/css application/javascript
    </IfModule>
  • 配置缓存:通过mod_expires模块设置浏览器缓存时间,
    <IfModule mod_expires.c>
        ExpiresActive On
        ExpiresByType text/css "access plus 1 month"
        ExpiresByType image/jpeg "access plus 1 month"
    </IfModule>
  • 调整最大连接数:编辑/etc/httpd/conf/httpd.conf,修改MaxRequestWorkersServerLimit参数,根据服务器内存大小合理设置(例如MaxRequestWorkers 150)。

安全加固

  • 限制访问IP:通过Require ipRequire all denied控制特定目录访问权限。
  • 禁用危险功能:在php.ini(若部署PHP)中设置disable_functions = exec,passthru,shell_exec,system,禁用危险函数。
  • 定期更新:设置定时任务echo "0 3 * * * yum update -y" >> /var/spool/cron/root,每日凌晨自动更新系统。
  • 日志监控:使用logwatch工具分析Apache日志,执行yum install -y logwatch并配置/etc/logwatch/conf/logwatch.conf,定期接收日志分析报告。

常见问题排查

  1. 服务无法启动:检查/var/log/httpd/error_log日志文件,定位错误原因(如端口冲突、配置语法错误等),可通过apachectl configtest验证配置语法。
  2. 网站无法访问:确认防火墙是否放行80/443端口(firewall-cmd --permanent --add-service=httpfirewall-cmd --permanent --add-service=https后重载防火墙),检查SELinux状态(sestatus),确保网站目录权限正确。

相关问答FAQs

问题1:如何查看Apache当前并发连接数?
解答:可通过netstat -an | grep :80 | wc -l命令统计80端口连接数,或使用apachectl fullstatus查看Apache服务器状态(需启用mod_status模块,并在配置中设置Location /server-status)。

问题2:CentOS 7下如何升级Apache版本?
解答:CentOS 7默认源中的Apache版本可能较低,需添加第三方源(如EPEL或IUS),通过yum install -y https://repo.ius.io/ius-release-el7.rpm添加IUS源后,执行yum update httpd即可升级到最新版本,升级前建议备份配置文件/etc/httpd/conf/httpd.conf

分享:
扫描分享到社交APP
上一篇
下一篇