nginx 防盗链配置
时间: 2024-08-13 10:02:48 浏览: 63
Nginx防盗链的配置方法
Nginx是一个流行的开源Web服务器,也常用于反向代理、负载均衡等场景。防盗链(CORS或Cross-Origin Resource Sharing)配置主要是为了限制来自特定源(即浏览器的域名)以外的请求访问服务器资源。
在Nginx中设置防盗链的基本步骤如下:
1. **启用 CORS 功能**:
首先,在 Nginx 的配置文件 `nginx.conf` 或者你的虚拟主机配置 (`server block`) 中找到 `http` 或 `server` 模块,添加如下行开启 CORS 支持:
```nginx
add_header 'Access-Control-Allow-Origin' '*'; # 允许所有来源请求
```
2. **定制允许的源**:
如果你想指定允许的特定源,可以替换星号为具体的域名,例如:
```nginx
add_header 'Access-Control-Allow-Origin' 'http://yourdomain.com';
```
3. **处理跨域请求头**:
设置允许的 HTTP 请求方法、自定义头部(如 `Authorization`),以及是否允许缓存响应:
```nginx
if ($request_method = 'OPTIONS') {
add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE';
add_header 'Access-Control-Allow-Headers' 'Content-Type, Authorization';
add_header 'Access-Control-Max-Age' 1728000; # 20天缓存时间
add_header 'Content-Length' 0;
return 204;
}
```
对于实际请求,仅在满足条件时返回资源:
```nginx
location /protected_resource {
if ($origin = 'http://yourdomain.com') {
add_header 'Content-Type' 'application/json';
# 返回资源内容
} else {
return 403; # 或者其他的错误状态码,如 401 Unauthorized
}
}
```
阅读全文