Nginx 是一个高性能的 HTTP 和反向代理服务器,也用作邮件代理服务器。跨域是指浏览器不能执行其他网站的脚本,这是由于浏览器的同源策略造成的。
Nginx 支持多种跨域解决方案,包括:
<script>
标签来实现跨域请求。跨域在现代 Web 开发中非常常见,特别是在前后端分离的架构中。例如:
跨域问题是由于浏览器的同源策略造成的。同源策略要求协议、域名和端口必须相同,否则浏览器会阻止跨域请求。
http
,而 API 使用 https
。方法一:CORS
通过设置 Nginx 响应头来允许跨域请求。
server {
listen 80;
server_name example.com;
location /api {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'Origin, Content-Type, Accept, Authorization';
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' 'Origin, Content-Type, Accept, Authorization';
add_header 'Content-Length' 0;
add_header 'Content-Type' 'text/plain charset=UTF-8';
return 204;
}
proxy_pass http://backend_server;
}
}
方法二:反向代理
通过 Nginx 反向代理来转发请求,从而避免跨域问题。
server {
listen 80;
server_name example.com;
location /api {
proxy_pass http://backend_server;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
通过以上配置,可以有效解决 Nginx 域名跨域问题。
领取专属 10元无门槛券
手把手带您无忧上云