凌峰创科服务平台

centos web服务器搭建

在CentOS操作系统上搭建Web服务器是许多开发者和系统管理员的基本技能需求,CentOS作为企业级Linux发行版,以其稳定性和安全性著称,非常适合部署Web服务,以下将详细介绍在CentOS上搭建Web服务器的完整步骤,包括环境准备、软件安装、配置优化及安全加固等内容。

centos web服务器搭建-图1
(图片来源网络,侵删)

服务器的初始环境准备至关重要,建议选择CentOS 7或更高版本,因为它们提供了更长的支持周期和更新的软件包,通过最小化安装系统可以减少不必要的资源消耗和潜在安全风险,安装完成后,需要更新系统软件包至最新版本,执行yum update -y命令确保所有组件都是最新的,配置静态网络IP地址,编辑/etc/sysconfig/network-scripts/ifcfg-eth0文件,设置BOOTPROTO=static,并添加IPADDRNETMASKGATEWAYDNS1等参数,重启网络服务使配置生效,关闭防火墙和SELinux可以简化初期调试,但生产环境中必须谨慎配置,建议临时执行systemctl stop firewalldsetenforce 0命令。

Web服务器的核心软件选择Apache、Nginx或Tomcat,其中Apache和Nginx是最常用的HTTP服务器,这里以Apache为例,安装过程非常简单,执行yum install httpd -y即可,安装完成后,启动Apache服务并设置开机自启:systemctl start httpdsystemctl enable httpd,默认情况下,Apache的网站根目录位于/var/www/html,可以通过修改/etc/httpd/conf/httpd.conf文件中的DocumentRoot指令更改,测试Web服务器是否正常运行,在浏览器中访问服务器的IP地址,若看到Apache默认测试页面则说明安装成功。

对于需要支持动态网站的场景,还需要安装PHP和数据库,以PHP 7.4和MySQL 8.0为例,首先安装EPEL源和Remi源,然后执行yum install php php-mysqlnd mariadb-server -y安装相关软件包,启动MariaDB服务并设置开机自启:systemctl start mariadbsystemctl enable mariadb,运行mysql_secure_installation脚本可以完成数据库root密码设置、匿名用户删除和测试数据库移除等安全配置,创建WordPress等应用所需的数据库和用户,通过mysql -u root -p登录后执行CREATE DATABASE wpdb;CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'password';GRANT ALL PRIVILEGES ON wpdb.* TO 'wpuser'@'localhost';等命令,安装PHP扩展模块如php-gdphp-mbstring等,以满足不同应用需求。

Nginx作为高性能Web服务器,在高并发场景下表现更优,安装Nginx的命令为yum install nginx -y,启动服务并设置开机自启:systemctl start nginxsystemctl enable nginx,Nginx的配置文件位于/etc/nginx/nginx.conf,默认网站根目录为/usr/share/nginx/html,Nginx的配置语法比Apache更简洁,支持更灵活的URL重写和负载均衡,如果需要同时运行Apache和Nginx,可以配置Nginx作为反向代理,将动态请求转发给Apache处理,静态请求由Nginx直接响应,在/etc/nginx/conf.d/reverse_proxy.conf中添加如下配置:

centos web服务器搭建-图2
(图片来源网络,侵删)
server {
    listen 80;
    server_name example.com;
    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

重启Nginx服务使配置生效。

安全加固是Web服务器搭建中不可忽视的一环,修改SSH默认端口22为其他高位端口,编辑/etc/ssh/sshd_config文件中的Port指令并重启SSH服务,使用fail2ban工具防止暴力破解,安装yum install fail2ban -y后,配置/etc/fail2ban/jail.local文件,设置[sshd]部分的enabled = truemaxretry = 3,为Web目录设置适当的文件权限,执行chown -R apache:apache /var/www/htmlchmod -R 755 /var/www/html,确保目录可读但不可写,启用HTTPS证书可以通过Let's Encrypt免费获取,安装certbot工具后执行certbot --nginx自动配置证书,定期备份网站数据和数据库,使用mysqldump命令备份数据库,通过rsync工具同步网站文件到远程服务器。

性能优化方面,可以通过调整Apache和Nginx的配置参数提升响应速度,对于Apache,在httpd.conf中修改KeepAliveMaxKeepAliveRequestsKeepAliveTimeout等参数;对于Nginx,调整worker_processesworker_connectionskeepalive_timeout等设置,启用Gzip压缩可以减少传输数据量,在Nginx配置中添加:

gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

使用缓存机制如nginx proxy_cache可以减轻后端服务器压力,配置缓存目录和相关参数后,Nginx会自动缓存静态资源。

centos web服务器搭建-图3
(图片来源网络,侵删)

监控服务器状态对于及时发现和解决问题非常重要,安装htopiftop工具可以实时查看系统资源占用和网络流量,执行yum install htop iftop -y,使用logrotate工具管理日志文件,避免日志文件过大占用磁盘空间,配置/etc/logrotate.d/httpd文件设置日志轮转策略,对于高流量网站,可以部署ELK(Elasticsearch、Logstash、Kibana)日志分析系统,集中收集和分析Web服务器日志。

组件 安装命令 配置文件位置 默认端口
Apache yum install httpd -y /etc/httpd/conf/httpd.conf 80
Nginx yum install nginx -y /etc/nginx/nginx.conf 80
PHP yum install php -y /etc/php.ini
MariaDB yum install mariadb-server -y /etc/my.cnf 3306

相关问答FAQs

  1. 问:如何在CentOS上同时安装Apache和Nginx并实现动静分离?
    答:首先分别安装Apache和Nginx,配置Nginx监听80端口,将动态请求(如.php文件)通过proxy_pass转发给Apache(监听8080端口),静态请求由Nginx直接处理,具体步骤包括:安装两个服务,修改Nginx配置文件添加location块区分动静请求,确保Apache和Nginx的网站根目录权限正确,最后重启两个服务使配置生效。

  2. 问:CentOS Web服务器如何防止DDoS攻击?
    答:可以通过多种手段防御DDoS攻击:使用防火墙如iptables限制连接频率,例如iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 50 -j DROP;安装DDoS deflate工具自动封禁恶意IP;配置Nginx的limit_req模块限制请求频率,如limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s;在云服务器上启用流量清洗服务;定期更新系统和软件补丁,避免被利用发起攻击。

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