在CentOS系统中安装Web服务器是许多服务器管理员和开发者的常见需求,CentOS作为稳定可靠的Linux发行版,支持多种Web服务器软件,如Apache、Nginx等,以下将详细介绍如何在CentOS上安装和配置Web服务器,包括环境准备、软件安装、配置优化及安全设置等步骤。

环境准备
在开始安装Web服务器之前,需要确保系统满足基本要求并做好准备工作,确保CentOS系统已更新至最新版本,可通过以下命令更新系统:
sudo yum update -y
检查系统网络连接是否正常,确保可以访问外部软件源,建议为Web服务器创建一个专用用户,
sudo useradd -m webadmin sudo passwd webadmin
根据实际需求规划Web服务器的安装目录,通常默认网站目录为/var/www/html,日志目录为/var/log/httpd(Apache)或/var/log/nginx(Nginx)。
安装Apache服务器
Apache是最流行的Web服务器之一,在CentOS上安装Apache非常简单,使用yum包管理器即可完成安装:
sudo yum install httpd -y
安装完成后,启动Apache服务并设置开机自启:
sudo systemctl start httpd sudo systemctl enable httpd
通过浏览器访问服务器的IP地址(如http://服务器IP),若看到Apache测试页面,则表示安装成功,Apache的主配置文件位于/etc/httpd/conf/httpd.conf,可通过编辑该文件调整服务器参数,例如监听端口、虚拟主机等。
Apache虚拟主机配置
虚拟主机允许在同一台服务器上托管多个网站,以创建两个虚拟主机为例(example1.com和example2.com):

- 创建网站目录: sudo mkdir -p /var/www/example1.com sudo mkdir -p /var/www/example2.com 
- 设置目录权限: sudo chown -R webadmin:webadmin /var/www/example1.com sudo chown -R webadmin:webadmin /var/www/example2.com 
- 创建测试页面: echo "<h1>Example1.com</h1>" | sudo tee /var/www/example1.com/index.html echo "<h1>Example2.com</h1>" | sudo tee /var/www/example2.com/index.html 
- 编辑虚拟主机配置文件(/etc/httpd/conf.d/vhosts.conf):<VirtualHost *:80> ServerName example1.com DocumentRoot /var/www/example1.com ErrorLog /var/log/httpd/example1_error.log CustomLog /var/log/httpd/example1_access.log combined </VirtualHost> <VirtualHost *:80> ServerName example2.com DocumentRoot /var/www/example2.com ErrorLog /var/log/httpd/example2_error.log CustomLog /var/log/httpd/example2_access.log combined </VirtualHost> 
- 重启Apache服务: sudo systemctl restart httpd 
安装Nginx服务器
Nginx以其高性能和低资源消耗著称,适合处理高并发请求,安装Nginx的命令如下:
sudo yum install nginx -y
启动Nginx并设置开机自启:
sudo systemctl start nginx sudo systemctl enable nginx
默认情况下,Nginx的网站目录为/usr/share/nginx/html,主配置文件为/etc/nginx/nginx.conf,编辑配置文件可调整 worker 进程数、连接数等参数。
Nginx虚拟主机配置
以配置example.com虚拟主机为例:
- 创建网站目录: sudo mkdir -p /var/www/example.com sudo echo "<h1>Example.com</h1>" | sudo tee /var/www/example.com/index.html 
- 创建配置文件(/etc/nginx/conf.d/example.com.conf):server { listen 80; server_name example.com www.example.com; root /var/www/example.com; index index.html; location / { try_files $uri $uri/ =404; } access_log /var/log/nginx/example.com.access.log; error_log /var/log/nginx/example.com.error.log; }
- 测试配置并重启Nginx: sudo nginx -t sudo systemctl restart nginx 
安装PHP支持
若需运行动态网页(如WordPress),需安装PHP,以安装PHP 7.4为例:
sudo yum install epel-release -y sudo yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm -y sudo yum install yum-utils -y sudo yum-config-manager --enable remi-php74 sudo yum install php php-fpm php-mysql php-gd php-mbstring -y
安装完成后,启动PHP-FPM服务:
sudo systemctl start php-fpm sudo systemctl enable php-fpm
Apache集成PHP
在Apache中,需启用php.conf配置:

sudo nano /etc/httpd/conf.d/php.conf
确保以下配置存在:
<FilesMatch .php$>
    SetHandler application/x-httpd-php
</FilesMatch> 重启Apache:
sudo systemctl restart httpd
Nginx集成PHP
在Nginx中,需配置PHP-FPM代理,修改虚拟主机配置文件:
location ~ .php$ {
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
} 重启Nginx:
sudo systemctl restart nginx
安全配置
- 防火墙设置:开放HTTP(80)和HTTPS(443)端口: sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --permanent --add-service=https sudo firewall-cmd --reload 
- SELinux配置:若SELinux启用,需为Web服务设置上下文: sudo setsebool -P httpd_can_network_connect 1 sudo chcon -R -t httpd_sys_content_t /var/www/html 
- SSL证书配置:可通过Let’s Encrypt免费获取SSL证书: sudo yum install certbot python3-certbot-apache -y sudo certbot --apache -d example.com 
性能优化
- Apache优化:调整httpd.conf中的MaxRequestWorkers和KeepAliveTimeout参数。
- Nginx优化:调整nginx.conf中的worker_processes和worker_connections参数。
- 缓存配置:启用Nginx缓存或使用Redis/Memcached加速动态内容。
FAQs
Q1: 如何检查Apache或Nginx的运行状态?
A1: 可使用以下命令检查服务状态: 
- Apache: sudo systemctl status httpd
- Nginx: sudo systemctl status nginx
 若服务未运行,可通过sudo systemctl start 服务名启动。
Q2: 如何修改Web服务器的默认端口?
A2: 
- Apache: 编辑/etc/httpd/conf/httpd.conf,修改Listen指令(如Listen 8080),重启服务。
- Nginx: 编辑/etc/nginx/nginx.conf或虚拟主机配置文件,修改listen指令(如listen 8080;),重启服务。
 同时需在防火墙中开放新端口。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
 
  
  
  
  
  
 
发表回复