➔
Nginx是目前最流行的Web服务器之一,以其高性能、低内存占用和优秀的并发处理能力著称。本文将介绍在Ubuntu系统上从零开始安装并配置Nginx的完整流程。
▶一、安装Nginx
推荐从官方源安装以获得最新稳定版本:
code
# CentOS/RHEL 系列
yum install -y epel-release
yum install -y nginx
# Ubuntu/Debian 系列
apt update
apt install -y nginx
安装完成后启动Nginx并设置开机自启:
code
systemctl start nginx
systemctl enable nginx
systemctl status nginx
此时访问 http://服务器IP,应该能看到Nginx的默认欢迎页面。
▶二、防火墙放行Web端口
code
# CentOS 使用 firewalld
firewall-cmd --add-service=http --permanent
firewall-cmd --add-service=https --permanent
firewall-cmd --reload
# Ubuntu 使用 ufw
ufw allow 80/tcp
ufw allow 443/tcp
▶三、配置虚拟主机
code
cat > /etc/nginx/conf.d/example.com.conf << 'EOF'
server {
listen 80;
server_name example.com www.example.com;
root /var/www/example.com;
index index.html index.htm index.php;
access_log /var/log/nginx/example.com.access.log;
error_log /var/log/nginx/example.com.error.log;
location / {
try_files $uri $uri/ /index.html;
}
}
EOF
测试配置并重载:
code
nginx -t # 测试配置文件
systemctl reload nginx # 平滑重载
▶四、配置HTTPS(SSL证书)
推荐使用免费的Let's Encrypt证书:
code
# 安装Certbot
yum install -y certbot python3-certbot-nginx # CentOS
apt install -y certbot python3-certbot-nginx # Ubuntu
# 自动申请并配置SSL
certbot --nginx -d example.com -d www.example.com
▶五、性能优化建议
- ●调整worker进程数:worker_processes auto;(自动匹配CPU核心数)
- ●开启gzip压缩:gzip on; gzip_types text/plain text/css application/json;
- ●配置静态文件缓存:location ~* \.(jpg|png|css|js)$ { expires 30d; }
- ●限制连接数防止资源耗尽
▶六、Nginx安全配置
合理配置Nginx安全头可防御多种Web攻击:
code
# Nginx安全头部配置
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Content-Type-Options "nosniff" always;
add_header X-XSS-Protection "1; mode=block" always;
add_header Strict-Transport-Security "max-age=31536000" always;
add_header Content-Security-Policy "default-src 'self'" always;
▶七、Nginx负载均衡
Nginx支持轮询、最少连接、IP哈希等多种负载均衡算法。将请求分发到多台后端服务器可实现高可用和高并发处理。配合健康检查机制,自动剔除故障节点确保服务不中断。
▶八、Nginx性能调优
优化worker_processes与worker_connections参数,调整sendfile和tcp_nopush提升静态文件传输效率。配置gzip压缩可减少50-70%传输数据量,设置合理缓存头减少重复请求。
▶九、HTTPS证书自动续签
使用Certbot配合Nginx实现SSL证书自动申请和续签。配置ACME挑战验证后,证书即将到期时系统自动续签,无需人工干预。配合systemd timer定期检查证书状态,确保证书永不过期。
▶十、Nginx日志分析与监控
通过GoAccess或AWStats分析Nginx访问日志,了解访客来源、热门页面和错误分布。结合Prometheus nginx_exporter采集Nginx指标,在Grafana中实现实时监控和告警。