在Linux系统管理中,Web服务器的部署与配置是每位开发者和运维人员必须掌握的核心技能。你是否也曾为如何高效地搭建一个稳定、安全且性能优异的网站环境而困惑?面对Nginx与Apache的抉择,或是SSL配置、性能调优等复杂步骤时感到无从下手?
本文将为你提供一份详尽的操作指南,手把手带你完成从零开始的Web服务器部署。我们将分别深入讲解Nginx和Apache这两大主流服务器在Ubuntu/Debian和CentOS/RHEL系统上的安装、配置、优化与维护。无论你是初学者还是希望系统梳理相关知识的从业者,这份指南都将为你提供清晰的路径。
目录
- Nginx部署配置
- Apache部署配置
- 性能优化
1. Nginx部署配置
Nginx以其高性能、高并发和低内存占用而闻名,尤其适合作为反向代理和负载均衡器。
1.1 安装与基础配置
安装Nginx:
根据你的Linux发行版,选择对应的安装命令。
# Ubuntu/Debian系统
sudo apt update
sudo apt install nginx
# CentOS/RHEL系统
sudo yum install epel-release
sudo yum install nginx
# 启动服务
sudo systemctl start nginx
sudo systemctl enable nginx
基础配置:
安装完成后,需要对主配置文件进行一些基础调整以适应你的服务器环境。
# 编辑主配置文件
sudo nano /etc/nginx/nginx.conf
# 设置工作进程数
worker_processes auto;
# 设置连接数
worker_connections 4096;
# 设置事件模型
events {
worker_connections 4096;
use epoll;
}
1.2 虚拟主机配置
虚拟主机允许你在单台服务器上托管多个网站。
域名配置:
首先为你的域名创建一个独立的配置文件。
# 创建配置文件
sudo nano /etc/nginx/sites-available/example.com
# 配置内容
server {
listen 80;
server_name example.com www.example.com;
root /var/www/example.com;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
location /api {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
启用配置:
创建软链接并测试配置无误后,重启Nginx使配置生效。这一步是常见的系统管理操作。
# 创建软链接
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
# 测试配置
sudo nginx -t
# 重启服务
sudo systemctl restart nginx
1.3 SSL配置
为网站启用HTTPS加密是保障数据安全的基本要求,Let‘s Encrypt提供了免费的SSL证书。
Let‘s Encrypt证书:
使用Certbot工具可以自动化证书的申请和续期。
# 安装certbot
sudo apt install certbot python3-certbot-nginx
# 获取证书
sudo certbot --nginx -d example.com -d www.example.com
# 自动续期
sudo crontab -e
# 添加:0 12 * * * /usr/bin/certbot renew --quiet
SSL配置:
Certbot通常会帮你自动修改Nginx配置。你也可以手动检查或调整SSL相关参数。
server {
listen 443 ssl;
server_name example.com www.example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
root /var/www/example.com;
index index.html;
}
2. Apache部署配置
Apache HTTP Server(简称Apache)历史悠久,功能模块丰富,拥有强大的.htaccess支持。
2.1 安装与基础配置
安装Apache:
# Ubuntu/Debian系统
sudo apt update
sudo apt install apache2
# CentOS/RHEL系统
sudo yum install httpd
# 启动服务
sudo systemctl start apache2
sudo systemctl enable apache2
基础配置:
# 编辑主配置文件
sudo nano /etc/apache2/apache2.conf
# 设置服务器信息
ServerName localhost
ServerAdmin admin@example.com
# 设置文档根目录
DocumentRoot /var/www/html
# 设置超时时间
Timeout 300
2.2 虚拟主机配置
域名配置:
# 创建配置文件
sudo nano /etc/apache2/sites-available/example.com.conf
# 配置内容
<VirtualHost *:80>
ServerName example.com
ServerAdmin admin@example.com
DocumentRoot /var/www/example.com
<Directory /var/www/example.com>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
启用配置:
# 启用站点
sudo a2ensite example.com.conf
# 启用模块
sudo a2enmod rewrite
# 测试配置
sudo apache2ctl configtest
# 重启服务
sudo systemctl restart apache2
2.3 SSL配置
SSL配置:
配置Apache以监听443端口并启用SSL引擎。
<VirtualHost *:443>
ServerName example.com
DocumentRoot /var/www/example.com
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
<Directory /var/www/example.com>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
3. 性能优化
部署完成只是第一步,对服务器进行性能优化才能充分发挥硬件潜力,应对高并发场景。
3.1 Nginx优化
配置优化:
通过启用压缩、缓存和优化连接参数来提升性能。
# 启用gzip压缩
gzip on;
gzip_comp_level 6;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
# 启用缓存
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expires 1y;
add_header Cache-Control "public, immutable";
}
# 连接优化
keepalive_timeout 65;
keepalive_requests 1000;
性能调优:
调整Linux内核参数可以更好地支持Nginx处理大量并发连接。
# 调整内核参数
echo "net.core.somaxconn = 65535" | sudo tee -a /etc/sysctl.conf
echo "net.ipv4.tcp_tw_reuse = 1" | sudo tee -a /etc/sysctl.conf
echo "net.ipv4.tcp_fin_timeout = 30" | sudo tee -a /etc/sysctl.conf
# 应用配置
sudo sysctl -p
3.2 Apache优化
配置优化:
同样,为Apache启用压缩和静态资源缓存能显著减少带宽占用并加快页面加载速度。
# 启用压缩
LoadModule deflate_module modules/mod_deflate.so
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
</IfModule>
# 启用缓存
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType text/css "access plus 1 year"
ExpiresByType application/javascript "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType image/gif "access plus 1 year"
</IfModule>
3.3 监控与维护
一个健康的服务器离不开持续的监控和有效的维护策略。
性能监控:
通过命令行工具实时观察服务器状态是快速定位问题的基础。
# 查看访问日志
sudo tail -f /var/log/nginx/access.log
# 查看错误日志
sudo tail -f /var/log/nginx/error.log
# 查看进程状态
ps aux | grep nginx
# 查看连接数
sudo netstat -an | grep :80 | wc -l
日志轮转:
配置日志轮转可以防止日志文件无限增长,耗尽磁盘空间,同时便于历史日志的归档管理。
# 配置日志轮转
sudo nano /etc/logrotate.d/nginx
# 配置内容
/var/log/nginx/*.log {
daily
missingok
rotate 52
compress
delaycompress
notifempty
create 644 www-data www-data
postrotate
invoke-rc.d nginx rotate >/dev/null 2>&1
endscript
}
总结
掌握Web服务器的部署、配置与优化,是构建稳定、高效线上服务的基石。通过本文的逐步讲解,你已经了解了Nginx和Apache两大服务器的核心配置方法,并掌握了性能调优与网络监控的基本技巧。
关键要点回顾:
- Nginx部署:安装配置、虚拟主机、SSL配置
- Apache部署:安装配置、虚拟主机、SSL配置
- 性能优化:配置优化、性能调优、监控维护
- 安全配置:SSL证书、防火墙、访问控制
- 监控维护:日志管理、性能监控、故障排查
理论与实践相结合才能巩固知识。建议你在自己的测试环境中反复练习这些步骤,并根据实际业务需求进行调整。如果你在部署过程中遇到其他问题,或想了解更多关于运维与DevOps的深度内容,可以到云栈社区与更多同行交流探讨。