Nginx 是一款高性能的开源反向代理服务器,也可用作负载均衡器、Web服务器和缓存服务器。本实战指南将带你深入了解 Nginx 的安装、基础配置、高级配置、最佳实践以及性能调优。
步骤 1: 安装 Nginx
Ubuntu
sudo apt update
sudo apt install nginx
CentOS
sudo yum install epel-release
sudo yum install nginx
步骤 2: 基础配置
1. 静态网站配置
编辑 Nginx 配置文件:
sudo nano /etc/nginx/nginx.conf
在 server
部分添加以下配置:
server {
listen 80;
server_name your_domain.com www.your_domain.com;
root /var/www/html; # 修改为你的网站根目录
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
保存并退出,然后重新加载配置:
sudo nginx -s reload
2. 反向代理配置
编辑 Nginx 配置文件:
sudo nano /etc/nginx/nginx.conf
在 server
部分添加以下配置:
server {
listen 80;
server_name your_domain.com;
location / {
proxy_pass http://your_backend_server;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
替换 your_domain.com
和 your_backend_server
为实际的域名和后端服务器地址。
步骤 3: 高级配置
SSL/TLS 配置
server {
listen 443 ssl;
server_name your_domain.com;
ssl_certificate /etc/nginx/ssl/your_domain.crt; # 替换为你的 SSL 证书路径
ssl_certificate_key /etc/nginx/ssl/your_domain.key; # 替换为你的 SSL 证书私钥路径
location / {
proxy_pass http://your_backend_server;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
负载均衡配置
http {
upstream backend {
server backend1.example.com;
server backend2.example.com;
server backend3.example.com;
}
server {
listen 80;
server_name your_domain.com;
location / {
proxy_pass http://backend;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
}
缓存配置
http {
proxy_cache_path /path/to/cache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off;
server {
location / {
proxy_pass http://backend;
proxy_cache my_cache;
proxy_cache_valid 200 302 10m;
proxy_cache_valid 404 1m;
add_header X-Proxy-Cache $upstream_cache_status;
}
}
}
步骤 4: 性能调优
-
调整 Worker 进程数: 根据服务器的 CPU 核心数,调整
worker_processes
配置项,提高性能。
worker_processes auto;
-
文件描述符限制: 增加系统文件描述符限制,编辑
/etc/security/limits.conf
。
nginx soft nofile 65536
nginx hard nofile 65536
-
启用 Keepalive: 在
http
配置块中启用 Keepalive,提高连接的重用率。
http {
...
keepalive_timeout 65;
...
}
- 开启 Gzip 压缩: 启用 Gzip 压缩,减小传输数据量。
http {
...
gzip on;
gzip_comp_level 5;
gzip_min_length 256;
...
}
- 调整缓冲区大小: 根据服务器内存大小,调整缓冲区大小。
http {
...
client_body_buffer_size 10K;
client_header_buffer_size 1k;
...
}
- 启用 FastCGI 缓存: 对于 FastCGI,启用缓存提高性能。
http {
...
fastcgi_cache_path /path/to/fastcgi/cache levels=1:2 keys_zone=my_fastcgi_cache:10m max_size=10g inactive=60m use_temp_path=off;
...
}
通过以上调优步骤,你将使 Nginx 在高负载环境下更加高效。根据实际服务器资源和需求,适度调整配置,确保系统的稳定性和性能。