nginx strict-origins 设置
时间: 2024-09-16 12:04:13 浏览: 50
nginx-http-hsts:Nginx 模块添加适当的 Strict-Transport-Security 标头
Nginx 的 `strict-origins` 配置选项用于控制跨源资源共享(Cross-Origin Resource Sharing, CORS)策略。它主要用于设置允许从哪些源发出的请求可以访问服务器资源。当设置为 `on` 或 `true` 时,Nginx 会实施严格的同源策略(Same-Origin Policy),只允许来自源本身(即域名、端口和协议一致的情况)的请求访问资源。
例如,在 Nginx 的 HTTP 模块中,你可以添加类似这样的配置:
```nginx
add_header 'Access-Control-Allow-Origin' $http_origin;
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'Authorization, Content-Type';
if ($request_method = 'OPTIONS') {
add_header 'Access-Control-Max-Age' 1728000; # 设置预检请求有效期为2周
add_header 'Content-Length' 0;
return 204;
}
# 使用 strict-origins 设置
server {
location / {
if ($strict_transport_security) {
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains";
}
# 如果设置了 strict-origins
set $cors_enabled 1;
if ($cors_enabled = 0) {
return 403; # 或者自定义错误页面
}
# 其他 CORS 相关配置...
}
}
```
当你希望限制请求的来源时,可以在适当的位置设置 `$cors_enabled` 变量,并结合条件判断来启用或禁用跨域。如果 `strict-origins` 被禁用 (`$cors_enabled = 0`),则不允许跨域请求。
阅读全文