nginx配置跨站访问
时间: 2024-08-07 16:01:20 浏览: 97
在 Nginx 配置中,跨站访问(Cross-Site Access Control,简称 CORS)主要是为了允许来自不同源(Domain)的网站向当前网站发起AJAX等跨域请求。在 Nginx 中启用 CORS,你需要在反向代理(Reverse Proxy)的 `location` 或者 `server` 块里添加特定的响应头。
以下是一个简单的示例,假设你有一个 API 接口在 `example.com/api`,并且你想允许从 `www.example.org` 访问:
```nginx
location /api/ {
add_header 'Access-Control-Allow-Origin' '*'; # 允许任意来源
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'Content-Type, Authorization';
if ($request_method = 'OPTIONS') { # 对于预检请求(Pre-flight request)
add_header 'Access-Control-Max-Age' 1728000; # 设置缓存时间(单位秒)
add_header 'Content-Length' 0;
return 204;
}
# 正常处理非OPTIONS请求
proxy_pass http://localhost:your_api_port; # 根据实际的API端口替换
}
```
在这个例子中,`Access-Control-Allow-Origin` 表示允许哪些源访问,`Access-Control-Allow-Methods` 和 `Access-Control-Allow-Headers` 分别指定了可以使用的HTTP方法和请求头。对于预检请求(OPTIONS),Nginx会返回一个空响应 (`204 No Content`) 来告知浏览器一切正常。
阅读全文