Linux云服务器Web服务器安装全攻略:Nginx与Apache详细对比
在数字化转型浪潮中,掌握Linux云服务器上Web服务器的部署技能已成为开发者和运维人员的必备能力。本文将深度解析Nginx和Apache两大主流Web服务器在云环境中的安装配置方法,通过详细的代码示例和性能对比,帮助您做出更适合业务需求的技术选型。
一、环境准备与基础配置
1.1 云服务器基础设置
以阿里云ECS为例,推荐选择CentOS 7+/Ubuntu 20.04 LTS系统:
# 系统更新
sudo yum update -y # CentOS
sudo apt update && sudo apt upgrade -y # Ubuntu
1.2 防火墙配置要点
开放HTTP/HTTPS端口是常被忽略的关键步骤:
# firewalld配置(CentOS)
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
二、Nginx实战安装
2.1 多版本安装方案
方案A:官方仓库安装(推荐)
# Ubuntu
sudo apt install nginx -y
# CentOS
sudo yum install epel-release -y
sudo yum install nginx -y
方案B:源码编译安装(定制化需求)
wget http://nginx.org/download/nginx-1.25.3.tar.gz
tar zxvf nginx-1.25.3.tar.gz
cd nginx-1.25.3
./configure --with-http_ssl_module
make && sudo make install
2.2 性能优化配置
修改/etc/nginx/nginx.conf关键参数:
worker_processes auto; # 自动匹配CPU核心数
worker_connections 4096; # 每个worker最大连接数
keepalive_timeout 65;
gzip on; # 启用压缩
三、Apache详细部署
3.1 安装与模块管理
# Ubuntu
sudo apt install apache2 -y
# CentOS
sudo yum install httpd -y
常用模块启用命令:
sudo a2enmod rewrite # Ubuntu
sudo systemctl restart apache2
3.2 虚拟主机配置
示例配置目录:/etc/apache2/sites-available/
ServerAdmin [email protected]
DocumentRoot /var/www/html
ServerName yourdomain.com
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
四、深度技术对比
| 对比项 | Nginx | Apache |
|---|---|---|
| 并发模型 | 事件驱动 | 进程/线程 |
| 内存消耗 | 低(约2.5MB/进程) | 较高(约10MB/进程) |
| 静态内容 | ★★★★★ | ★★★☆☆ |
| 动态内容 | 需通过FastCGI | 原生支持更好 |
| .htaccess | 不支持 | 支持 |
五、安全加固建议
- HTTPS强制配置:使用Let's Encrypt免费证书
- 目录权限控制:确保web目录权限为755/644
- 日志监控:配置logrotate防止日志膨胀
- 定期更新:设置yum/apt自动安全更新
# Let's Encrypt证书获取示例
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d yourdomain.com
通过本文的详细对比可见,Nginx在高并发场景表现优异,而Apache在模块丰富度和兼容性上更胜一筹。建议静态内容为主的站点选择Nginx,需要复杂.htaccess配置的传统应用选择Apache。实际生产中,常见两者配合使用的混合架构,用Nginx作反向代理,Apache处理动态请求,充分发挥各自优势。
