Ngnix配置前后端分离的跨域请求配置文件
时间: 2024-08-12 08:08:45 浏览: 107
前后端分离跨域问题
在Nginx配置中,处理前后端分离应用的跨域请求通常涉及对HTTP头部`Access-Control-Allow-Origin`的支持。下面是一个基本的Nginx配置示例,用于允许来自特定域名或所有域名的CORS请求:
```nginx
server {
listen 80; # 或者你的实际端口,如443
server_name yourdomain.com; # 替换为你的域名
# 允许所有来源的CORS请求
if ($request_method = 'OPTIONS') {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'Content-Type, Authorization';
add_header 'Access-Control-Max-Age' 1728000; # 2周
add_header 'Content-Length' 0;
return 204;
}
# 对于实际的请求
location / {
add_header 'Access-Control-Allow-Origin' 'yourdomain.com'; # 如果你的前端只从这个域名请求
add_header 'Access-Control-Allow-Credentials' 'true'; # 如果需要发送cookies
proxy_pass http://backend_api_url; # 替换为你的后端API地址
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
```
在这个例子中:
- `if`块处理预检请求(OPTIONS请求),这是CORS请求的一部分,用来检查服务器是否允许实际的请求。
- `location /`块中,我们设置了允许的源,并将前端请求代理到后端API。
阅读全文