Web服务器是网站运行的核心基础,它负责接收用户请求并返回网页内容,本文将以主流的Nginx和Apache为例,介绍在Linux系统中的安装步骤,帮助读者快速搭建Web服务环境。

安装前的准备工作
在开始安装前,需确保系统满足基本要求:推荐使用Ubuntu 20.04+或CentOS 7+系统,具备sudo权限的用户账户,以及稳定的网络连接,建议先更新系统包管理器,确保软件包列表最新:
- Ubuntu/Debian系统:
sudo apt update && sudo apt upgrade -y - CentOS/RHEL系统:
sudo yum update -y
若后续编译安装(如自定义模块),还需安装编译工具,例如Ubuntu的build-essential或CentOS的gcc make。
常见Web服务器介绍
目前主流的Web服务器有Nginx和Apache,两者各有特点:
- Nginx:轻量级、高性能,擅长处理高并发请求,反向代理和负载均衡功能强大,适合静态资源服务和微架构场景。
- Apache:功能全面,模块化程度高,兼容性优秀(尤其对旧版协议支持),适合需要复杂扩展(如PHP、CGI)的传统网站。
本文以Nginx为例讲解安装,Apache步骤类似(包名替换为apache2或httpd)。
分步安装指南(以Nginx为例)
Ubuntu/Debian系统安装
通过APT仓库安装最便捷,步骤如下:
# 安装Nginx sudo apt install nginx -y # 启动服务并设置开机自启 sudo systemctl start nginx sudo systemctl enable nginx # 检查运行状态 sudo systemctl status nginx
若显示“active (running)”,则安装成功。

CentOS/RHEL系统安装
需先添加EPEL仓库(扩展软件包),再通过YUM安装:
# 安装EPEL仓库(CentOS 7/8适用) sudo yum install epel-release -y # 安装Nginx sudo yum install nginx -y # 启动服务并设置开机自启 sudo systemctl start nginx sudo systemctl enable nginx # 检查状态 sudo systemctl status nginx
基础配置与启动
安装完成后,默认网站目录为/var/www/html,配置文件位于/etc/nginx/nginx.conf,首次使用可测试默认配置:
-
测试配置语法:
sudo nginx -t
若显示“syntax is ok”和“test is successful”,则配置正确。
-
重新加载配置:
修改配置后需执行sudo nginx -s reload生效,或重启服务sudo systemctl restart nginx。 -
防火墙设置:
确保防火墙允许HTTP(80端口)和HTTPS(443端口)访问:
- Ubuntu(UFW):
sudo ufw allow 'Nginx Full' - CentOS(firewalld):
sudo firewall-cmd --permanent --add-service=http https && sudo firewall-cmd --reload
- Ubuntu(UFW):
完成上述步骤后,在浏览器访问服务器公网IP,若看到Nginx欢迎页,则安装成功。
常见问题快速排查
- 无法访问网站:检查防火墙规则、服务状态(
systemctl status nginx),以及网站目录权限(sudo chown -R www-data:www-data /var/www/html,Ubuntu用户组为www-data,CentOS为nginx)。 - 端口冲突:默认80端口被占用时,可通过
sudo ss -tulnp | grep :80查看占用进程,修改Nginx配置文件中的listen指令(如listen 8080;)。
相关问答FAQs
Q1:安装后浏览器无法访问网站,可能是什么原因?
A:常见原因包括:防火墙未开放80/443端口、Nginx服务未启动、服务器安全组(如云服务器ECS/VPC)未放行端口、网站目录权限不足(需确保Nginx用户可读取),可通过systemctl status nginx检查服务状态,curl -I http://localhost测试本地连接,逐步排查。
Q2:Nginx和Apache如何选择?适合什么场景?
A:若项目需处理高并发、静态资源多(如CDN、视频网站),或需要反向代理(如负载均衡、API网关),优先选Nginx;若项目依赖PHP传统架构(如WordPress、Discuz!),或需要复杂模块(如URL重写、访问控制),Apache更合适,两者可共存(如Nginx反向代理Apache),根据实际需求搭配使用。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/56314.html