Nginx 跨域配置 支持多域名 (解决配置无效问题)


要在 Nginx 上配置跨域支持多个域名,你可以使用 add_header 指令在响应头中添加 Access-Control-Allow-Origin 头,指定允许的域名。以下是一个示例配置:

server {listen 80;server_name yourdomain.com;location / {# 允许多个域名,使用逗号分隔add_header Access-Control-Allow-Origin "http://example1.com, http://example2.com";add_header Access-Control-Allow-Methods "GET, POST, OPTIONS";add_header Access-Control-Allow-Headers "Authorization, Content-Type";# 其他配置...}}

在上述配置中,Access-Control-Allow-Origin 头中指定了需要允许的多个域名,使用逗号分隔。你也可以使用通配符 * 来允许所有域名,但这并不推荐,因为会存在安全风险。

此外,add_header Access-Control-Allow-Methods 指令用于指定允许的 HTTP 方法,add_header Access-Control-Allow-Headers 指令用于指定允许的请求头。

如果你在配置中使用了 add_header 指令,但仍然无效,可能是因为之前的响应头中已经存在了 Access-Control-Allow-Origin 头。你可以通过以下方法解决这个问题:

    检查之前的 Nginx 配置,确保没有设置 add_header Access-Control-Allow-Origin。检查你的应用程序是否在返回响应时已经设置了 Access-Control-Allow-Origin 头。如果应用程序已经设置了该头,Nginx 配置中的设置将会被覆盖。如果以上两点都不是问题,你可以尝试在 Nginx 配置中使用 more_set_headers 模块来覆盖之前的 Access-Control-Allow-Origin 头:
server {listen 80;server_name yourdomain.com;location / {# 覆盖之前的 Access-Control-Allow-Origin 头more_set_headers "Access-Control-Allow-Origin: http://example1.com, http://example2.com";add_header Access-Control-Allow-Methods "GET, POST, OPTIONS";add_header Access-Control-Allow-Headers "Authorization, Content-Type";# 其他配置...}}

使用 more_set_headers 指令需要安装 ngx_http_headers_more_filter_module 模块,你可以通过 nginx -V 命令查看你的 Nginx 是否已经安装了该模块。如果没有安装,你需要重新编译 Nginx 并包含该模块。


上一篇:“automation服务器不能创建对象”的问题的解决方案

下一篇:SecureCRT连不上服务器显示Connection closed


Nginx
Copyright © 2002-2019 测速网 www.inhv.cn 皖ICP备2023010105号
测速城市 测速地区 测速街道 网速测试城市 网速测试地区 网速测试街道
温馨提示:部分文章图片数据来源与网络,仅供参考!版权归原作者所有,如有侵权请联系删除!

热门搜索 城市网站建设 地区网站制作 街道网页设计 大写数字 热点城市 热点地区 热点街道 热点时间 房贷计算器