niginx访问自己除了8080端口之外,其他端口都会返回strict-origin-when-cross-origin
时间: 2024-09-20 08:02:37 浏览: 46
当你尝试通过Nginx访问除默认端口(通常是80或443)以外的自定义端口(比如8080)时,如果设置了`strict-origin-when-cross-origin`策略,这表明Nginx将严格限制只有当发起的请求跨域(即,源域和目标域不同)时,才会允许指定源域(origin)。这个策略通常用于增强安全性,防止非预期的跨域资源共享(CORS)请求。
在Nginx配置文件中,可以使用`server`块来设置这样的规则,如下所示:
```nginx
server {
listen 8080; # 自定义端口
server_name example.com;
location / {
add_header 'Access-Control-Allow-Origin' 'http://example.com'; # 允许特定源
add_header 'Access-Control-Allow-Credentials' 'true'; # 如果需要发送cookie
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'Content-Type';
if ($request_method = 'OPTIONS') {
add_header 'Access-Control-Allow-Origin' $http_origin;
add_header 'Access-Control-Max-Age' 1728000;
add_header 'Content-Length' 0;
return 204;
}
# 此处的请求处理逻辑...
}
}
```
这里的配置仅允许从`http://example.com`发起的请求,并在跨域场景下启用`strict-origin`策略。如果你需要更宽松的策略,可以适当修改`Access-Control-Allow-Origin`的值。