本文最后更新于 573 天前,其中的信息可能已经有所发展或是发生改变。
Nginx是一款高性能的Web服务器和反向代理服务器,它在处理跨域请求方面起到了重要的作用。跨域请求是指浏览器从一个源(例如网站A的域名)发出的HTTP请求要访问另一个源(例如网站B的域名)的资源时,由于同源策略的限制,浏览器会阻止此类请求。为了解决跨域问题,Nginx可以通过配置CORS(跨域资源共享)来允许或限制跨域请求。通过设置合适的CORS头部,Nginx可以控制哪些域名或源可以访问它的资源,以及哪些HTTP方法和头部是允许的。这使得开发人员可以安全地实现跨域请求,提供更灵活的Web应用程序和服务。因此,Nginx在跨域请求管理中扮演着关键的角色,确保了Web应用程序的安全性和可访问性。
效果
如何配置?
将以下配置文件加入nginx的location块。
add_header X-Cache $upstream_cache_status; add_header Access-Control-Allow-Origin *; add_header Access-Control-Allow-Methods "GET, POST, OPTIONS";
add_header Access-Control-Allow-Headers "Authorization, Origin, X-Requested-With, Content-Type, Accept";
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 "Authorization, Origin, X-Requested-With, Content-Type, Accept"; return 204; # 返回204响应,表示预检请求成功 }
踩坑指南
注意
如果是宝塔用户请先注释掉如图(set Nginx cache)后面的代码,否则改动无效!!