一、环境准备与基础配置
1.1 系统版本选择
推荐使用CentOS 7或CentOS 8 LTS版本,这两个版本提供长期支持且拥有成熟的软件生态。可通过以下命令检查系统版本:
cat /etc/centos-release
对于新部署场景,建议选择CentOS 7.9或CentOS 8.5等稳定小版本,这些版本经过充分验证且包含最新安全补丁。
1.2 网络配置检查
确保服务器具备公网IP或可访问的内网环境,执行以下命令验证网络连通性:
ping baidu.com
若使用云服务器,需在控制台配置安全组规则,开放80(HTTP)、443(HTTPS)及22(SSH)端口。对于自建机房,需检查防火墙规则:
firewall-cmd --list-ports # 查看已开放端口firewall-cmd --add-port=80/tcp --permanent # 开放HTTP端口firewall-cmd --reload # 重载防火墙规则
1.3 依赖包安装
执行以下命令安装基础开发工具和依赖库:
yum install -y epel-releaseyum groupinstall -y "Development Tools"yum install -y wget curl vim net-tools
对于需要编译安装的场景,建议安装编译工具链:
yum install -y gcc gcc-c++ make cmake autoconf
二、Web服务器软件选择与安装
2.1 Nginx部署方案
Nginx以其高并发处理能力成为主流选择,安装步骤如下:
# 添加官方仓库cat > /etc/yum.repos.d/nginx.repo <<EOF[nginx-stable]name=nginx stable repobaseurl=http://nginx.org/packages/centos/\$releasever/\$basearch/gpgcheck=1enabled=1gpgkey=https://nginx.org/keys/nginx_signing.keyEOF# 安装Nginxyum install -y nginxsystemctl enable nginxsystemctl start nginx
安装完成后,通过curl localhost验证服务状态,正常应返回Nginx欢迎页面。
2.2 Apache HTTP Server方案
对于需要兼容传统CGI应用的场景,可选择Apache:
yum install -y httpdsystemctl enable httpdsystemctl start httpd
配置文件位于/etc/httpd/conf/httpd.conf,主要修改项包括:
ServerName:设置域名或服务器IPDocumentRoot:指定网站根目录Listen:配置监听端口
2.3 混合部署架构
生产环境推荐采用Nginx+Apache的组合架构:
客户端 → Nginx(静态资源/负载均衡) → Apache(动态处理)
配置Nginx反向代理:
location / {proxy_pass http://localhost:8080;proxy_set_header Host \$host;proxy_set_header X-Real-IP \$remote_addr;}
同时修改Apache监听端口为8080。
三、服务配置与优化
3.1 虚拟主机配置
以Nginx为例配置多站点:
server {listen 80;server_name example.com;root /var/www/example;index index.html;location / {try_files \$uri \$uri/ =404;}}
创建对应目录并设置权限:
mkdir -p /var/www/examplechown -R nginx:nginx /var/www/examplechmod -R 755 /var/www
3.2 性能优化参数
关键优化项包括:
- worker进程数:设置为CPU核心数
worker_processes auto;
- 连接数配置:
events {worker_connections 1024;use epoll;multi_accept on;}
- Gzip压缩:
gzip on;gzip_types text/plain text/css application/json application/javascript text/xml;
3.3 日志管理方案
配置日志轮转防止磁盘占满:
cat > /etc/logrotate.d/nginx <<EOF/var/log/nginx/*.log {dailymissingokrotate 14compressdelaycompressnotifemptycreate 0640 nginx admsharedscriptspostrotate[ -f /var/run/nginx.pid ] && kill -USR1 \`cat /var/run/nginx.pid\`endscript}EOF
四、安全加固措施
4.1 SSL证书配置
使用Let’s Encrypt免费证书:
yum install -y certbot python3-certbot-nginxcertbot --nginx -d example.com
配置自动续期:
echo "0 3 * * * /usr/bin/certbot renew --quiet" | crontab -
4.2 防火墙强化
仅开放必要端口:
firewall-cmd --permanent --remove-service=sshfirewall-cmd --permanent --add-port=2222/tcpfirewall-cmd --reload
修改SSH默认端口:
sed -i 's/^#Port 22/Port 2222/' /etc/ssh/sshd_configsystemctl restart sshd
4.3 入侵防御配置
安装Fail2Ban防止暴力破解:
yum install -y fail2bancp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
编辑jail.local添加SSH防护规则:
[sshd]enabled = trueport = 2222filter = sshdlogpath = /var/log/securemaxretry = 3bantime = 86400
五、监控与维护
5.1 基础监控方案
安装htop进行实时监控:
yum install -y epel-releaseyum install -y htop
配置Nginx状态监控:
location /nginx_status {stub_status on;access_log off;allow 127.0.0.1;deny all;}
5.2 日志分析工具
安装GoAccess进行可视化分析:
yum install -y geoip-devel ncurses-develwget https://tar.goaccess.io/goaccess-1.7.tar.gztar -xzvf goaccess-1.7.tar.gzcd goaccess-1.7./configure --enable-utf8 --enable-geoip=legacymake && make install
生成HTML报告:
goaccess /var/log/nginx/access.log -o report.html --log-format=COMBINED --real-time-html
5.3 备份策略
制定增量备份方案:
# 每日备份配置文件0 2 * * * tar -czf /backup/nginx_conf_$(date +\%Y\%m\%d).tar.gz /etc/nginx/# 每周备份网站数据0 3 * * 0 tar -czf /backup/website_data_$(date +\%Y\%m\%d).tar.gz /var/www/
配置异地备份可使用rsync或对象存储服务。
六、常见问题处理
6.1 端口冲突解决
当80端口被占用时,可通过以下命令查找占用进程:
ss -tulnp | grep :80# 或lsof -i :80
终止占用进程或修改服务配置文件中的监听端口。
6.2 权限问题排查
出现403 Forbidden错误时,检查:
- 目录权限是否为755
- 文件所有者是否为web服务器用户(nginx/apache)
- SELinux是否阻止访问:
getenforce # 查看状态setenforce 0 # 临时关闭(测试用)
6.3 性能瓶颈分析
使用以下工具进行诊断:
ab(Apache Benchmark)进行压力测试slowlog模块记录慢请求strace跟踪系统调用
通过系统化的部署流程和持续优化,CentOS可构建出稳定高效的Web服务平台。建议定期更新系统补丁(yum update),关注安全公告,并根据实际负载动态调整配置参数。对于高并发场景,可考虑升级至最新内核版本或采用容器化部署方案。