Nginx 是高性能轻量级 Web 服务器,采用事件驱动异步非阻塞模型,单进程可处理数万并发连接,广泛用于静态资源服务、反向代理、负载均衡。
核心特性
| 特性 | 说明 |
|---|
| 事件驱动 | epoll/kqueue 异步非阻塞 I/O |
| 高并发 | 万级并发,内存占用极低 |
| 模块化 | 动态模块按需加载 |
| 热部署 | 无需停服更新配置 |
典型配置
静态资源服务
1
2
3
4
5
6
| server {
listen 80;
server_name example.com;
root /var/www/html;
index index.html;
}
|
反向代理 + 动静分离
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| server {
listen 80;
server_name example.com;
# 静态资源
location ~* \.(jpg|png|css|js)$ {
root /var/www/static;
expires 7d;
}
# 动态请求代理到后端
location /api/ {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
|
负载均衡
1
2
3
4
5
6
7
8
9
10
11
12
| upstream backend {
server 192.168.1.100:8080 weight=2;
server 192.168.1.101:8080 weight=1;
server 192.168.1.102:8080 backup;
}
server {
listen 80;
location / {
proxy_pass http://backend;
}
}
|
HTTPS 配置
1
2
3
4
5
6
7
8
9
10
11
| server {
listen 80;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
ssl_certificate /etc/nginx/cert/example.crt;
ssl_certificate_key /etc/nginx/cert/example.key;
ssl_protocols TLSv1.2 TLSv1.3;
}
|
Nginx vs Apache
| 特性 | Nginx | Apache |
|---|
| 并发模型 | 异步非阻塞事件驱动 | 多进程/多线程 |
| 并发能力 | 万级 | 千级 |
| 内存占用 | 低 | 高 |
| 动态内容 | 需反向代理 | 内置模块支持 |
常用命令
1
2
3
4
5
| sudo apt install nginx # 安装
sudo systemctl start nginx # 启动
sudo systemctl restart nginx # 重启
sudo nginx -t # 检查配置
sudo nginx -s reload # 重载配置
|
配置文件路径
- 主配置:
/etc/nginx/nginx.conf - 站点配置:
/etc/nginx/sites-available/ - 日志:
/var/log/nginx/access.log、/var/log/nginx/error.log
Comments