本文最后更新于100 天前,其中的信息可能已经过时,如有错误请发送邮件到erdoujoy@163.com
Nginx 是一款高性能的开源 HTTP 和反向代理服务器,广泛用于部署静态网站、负载均衡、反向代理等场景。以下是关于 Nginx 部署的详细步骤和注意事项:
一、部署环境
- 操作系统:Linux(如 CentOS、Ubuntu)或 Windows(Windows 版本功能有限,建议在 Linux 上部署)。
- 硬件要求:根据网站流量和应用需求,至少需要 1 核 CPU、1GB 内存和足够的磁盘空间。
二、安装 Nginx
1. 在 Linux 上安装
- 通过包管理器安装(推荐)
- Ubuntu/Debian:
bash sudo apt update sudo apt install nginx
- CentOS/RHEL:
bash sudo yum install epel-release sudo yum install nginx
- Ubuntu/Debian:
- 从源码编译安装(适用于定制化需求)
- 安装依赖库:
bash sudo apt install build-essential libpcre3 libpcre3-dev libssl-dev
- 下载 Nginx 源码:
bash wget http://nginx.org/download/nginx-<version>.tar.gz tar -zxvf nginx-<version>.tar.gz cd nginx-<version>
- 配置、编译并安装:
bash ./configure --prefix=/usr/local/nginx make sudo make install
- 安装依赖库:
2. 在 Windows 上安装
- 下载 Nginx Windows 版本(官网下载)。
- 解压到指定目录(如
C:\nginx
)。 - 启动 Nginx:
bash start nginx
三、配置 Nginx
1. 主配置文件
- 位置:
- Linux:
/etc/nginx/nginx.conf
- Windows:
<nginx安装目录>/conf/nginx.conf
- Linux:
- 基本配置示例:
user nginx; worker_processes auto; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 80; server_name localhost; location / { root html; index index.html index.htm; } } }
2. 虚拟主机配置
- 创建虚拟主机配置文件:
- Linux:
/etc/nginx/sites-available/example.com
- 示例配置:
server { listen 80; server_name example.com; location / { root /var/www/example.com; index index.html; } }
- Linux:
- 启用虚拟主机:
bash sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/ sudo nginx -t sudo systemctl restart nginx
四、启动和管理 Nginx
1. 在 Linux 上
- 启动:
bash sudo systemctl start nginx
- 停止:
bash sudo systemctl stop nginx
- 重启:
bash sudo systemctl restart nginx
- 查看状态:
bash sudo systemctl status nginx
2. 在 Windows 上
- 启动:
bash start nginx
- 停止:
bash nginx -s stop
- 平滑重启:
bash nginx -s reload
五、常见问题及优化
1. 防火墙配置
- 确保防火墙允许 HTTP(80 端口)和 HTTPS(443 端口)流量。
- 在 Linux 上:
bash sudo ufw allow 'Apache Full' sudo ufw enable
2. 性能优化
- 开启 Gzip 压缩:
nginx gzip on; gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
- 调整 worker_processes 和 worker_connections:
- 根据 CPU 核心数设置
worker_processes
。 - 增大
worker_connections
以支持更多并发连接。
- 根据 CPU 核心数设置
3. 日志管理
- 日志路径:
- Linux:
/var/log/nginx/
- 配置日志格式:
nginx log_format custom '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log custom;
- Linux:
六、示例应用
1. 部署静态网站
- 将静态文件(HTML、CSS、JavaScript 等)放在
root
指定的目录中。 - 示例配置:
server { listen 80; server_name example.com; location / { root /var/www/example.com; index index.html; } }
2. 作为反向代理
- 配置 Nginx 将请求转发到后端应用服务器。
- 示例配置:
server { listen 80; server_name example.com; location / { proxy_pass http://backend_server:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
七、安全配置
1. 启用 HTTPS
- 获取 SSL 证书(如 Let’s Encrypt)。
- 配置 HTTPS:
server { listen 443 ssl; server_name example.com; ssl_certificate /etc/ssl/certs/example.com.crt; ssl_certificate_key /etc/ssl/private/example.com.key; location / { root /var/www/example.com; index index.html; } }
2. 限制访问
- 使用
allow
和deny
指令限制 IP 访问:nginx location /admin { allow 192.168.1.0/24; deny all; root /var/www/example.com; index index.html; }
八、总结
Nginx 的部署和配置相对简单,但需要根据具体需求进行调整。通过合理配置,可以实现高性能的静态内容服务、反向代理、负载均衡等功能。同时,建议定期检查日志和性能指标,确保服务器稳定运行。
如果你有更具体的需求(如特定的部署场景或功能),可以告诉我,我会为你提供更详细的指导!