nginx代理详细讲解
Nginx代理配置详解
1. 正向代理
- 用途:客户端通过代理服务器访问外部资源。
- 配置示例:
server {
listen 80;
resolver 8.8.8.8; # DNS解析服务器
location / {
proxy_pass http://$http_host$request_uri; # 转发客户端请求
}
}
2. 反向代理
- 用途:将客户端请求转发到后端服务器,隐藏真实服务。
- 基础配置:
server {
listen 80;
server_name example;
location / {
proxy_pass http://backend_server; # 后端服务器地址
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
3. 常用指令
-
proxy_pass
:定义后端服务器地址(如http://localhost:3000
)。 -
proxy_set_header
:修改请求头(如传递真实客户端IP)。 -
proxy_redirect
:重定向响应头中的URL。 -
proxy_buffer_size
:设置代理缓冲区大小。
4. 负载均衡
- 配置示例(轮询策略):
upstream backend {
server backend1.example;
server backend2.example;
}
server {
location / {
proxy_pass http://backend;
}
}
- 负载策略:
-
weight
:权重分配。 -
ip_hash
:基于IP的会话保持。 -
least_conn
:最少连接数优先。
-
5. SSL终止
- HTTPS反向代理配置:
server {
listen 443 ssl;
server_name example;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
location / {
proxy_pass http://backend_server;
proxy_set_header X-Forwarded-Proto https;
}
}
6. WebSocket代理
- 配置示例:
location /ws {
proxy_pass http://backend_ws;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
7. 缓存配置
- 启用响应缓存:
proxy_cache_path /path/to/cache levels=1:2 keys_zone=my_cache:10m;
location / {
proxy_cache my_cache;
proxy_pass http://backend;
}
配置文件位置
- 主配置文件:
/etc/nginx/nginx.conf
- 站点配置:
/etc/nginx/sites-available/
- 生效配置:通过符号链接到
/etc/nginx/sites-enabled/
重载配置
代码语言:txt复制sudo systemctl reload nginx
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2025-03-18,如有侵权请联系 cloudcommunity@tencent 删除nginx代理服务器客户端配置
发布评论