Nginx安装与部署完整指南
一、环境准备
-
系统要求:
- Linux系统(推荐Ubuntu/CentOS)
- 内存 ≥ 512MB
- 磁盘空间 ≥ 100MB
-
安装依赖:
# Ubuntu/Debian
sudo apt update
sudo apt install build-essential libpcre3 libpcre3-dev zlib1g zlib1g-dev libssl-dev
# CentOS/RHEL
sudo yum groupinstall "Development Tools"
sudo yum install pcre-devel zlib-devel openssl-devel
二、安装方法
方法1:源码编译安装(推荐)
# 下载最新稳定版
wget http://nginx.org/download/nginx-1.24.0.tar.gz
tar -zxvf nginx-1.24.0.tar.gz
cd nginx-1.24.0
# 配置编译参数
./configure \
--prefix=/usr/local/nginx \
--with-http_ssl_module \
--with-http_stub_status_module \
--with-threads
# 编译安装
make && sudo make install
方法2:包管理器安装
# Ubuntu
sudo apt install nginx
# CentOS
sudo yum install epel-release
sudo yum install nginx
三、目录结构
/usr/local/nginx/
├── sbin/nginx # 主程序
├── conf/nginx.conf # 主配置文件
├── logs/ # 日志目录
└── html/ # 默认网站根目录
四、基本配置
- 主配置文件 (
/usr/local/nginx/conf/nginx.conf
)
user www-data;
worker_processes auto;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html;
}
}
}
- 常用命令:
# 启动
sudo /usr/local/nginx/sbin/nginx
# 重载配置
sudo nginx -s reload
# 停止
sudo nginx -s stop
# 检查配置
sudo nginx -t
五、部署网站
- 创建网站目录:
sudo mkdir -p /var/www/example.com
sudo chown -R www-data:www-data /var/www/example.com
- 添加虚拟主机:
server {
listen 80;
server_name example.com www.example.com;
access_log /var/log/nginx/example.com.access.log;
error_log /var/log/nginx/example.com.error.log;
location / {
root /var/www/example.com;
index index.html;
}
}
六、HTTPS配置
- 生成证书(使用Let’s Encrypt):
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d example.com -d www.example.com
- 自动续期:
sudo certbot renew --dry-run
七、性能优化
- 工作进程优化:
worker_processes auto; # 自动匹配CPU核心数
worker_cpu_affinity auto;
- 连接优化:
events {
worker_connections 4096;
multi_accept on;
use epoll;
}
- 缓冲区优化:
client_body_buffer_size 10K;
client_header_buffer_size 1k;
client_max_body_size 8m;
large_client_header_buffers 4 4k;
八、常见问题排查
- 端口占用:
sudo lsof -i :80
- 权限问题:
sudo chown -R www-data:www-data /var/www
sudo setsebool -P httpd_can_network_connect 1 # SELinux系统
- 日志分析:
tail -f /var/log/nginx/error.log
grep "50[0-5]" /var/log/nginx/access.log
九、高级功能
- 负载均衡:
upstream backend {
server 192.168.1.10:8000 weight=3;
server 192.168.1.11:8000;
server 192.168.1.12:8000 backup;
}
server {
location / {
proxy_pass http://backend;
}
}
- 缓存配置:
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m inactive=60m;
server {
location / {
proxy_cache my_cache;
proxy_cache_valid 200 302 10m;
}
}
部署验证:访问
http://服务器IP
应显示Nginx欢迎页,或使用命令curl -I http://localhost
检查HTTP响应头。
此指南涵盖从基础安装到生产环境部署全流程,建议根据实际需求调整配置参数。