宝塔nginx跨域设置

本文详细介绍了如何在Nginx服务器上正确配置跨域请求,通过设置$dom变量来区分不同源,并使用add_header指令添加Access-Control-Allow-Origin等响应头,确保POST、GET等方法及所有头部信息的跨域请求能够正常工作。同时,对于OPTIONS预检请求,文章提供了返回204状态码的解决方案。

 在网站的配置文件中的第一个location前加入下面这段,宝塔中add_header加到location一直不生效不知为什么,而且add_header放在if中也报错

    set $dom "no";
    if ($http_origin ~* \.csdn\.net|\.0\.1){
        set $dom $http_origin;
    }

    add_header Access-Control-Allow-Origin $dom;
    add_header Access-Control-Allow-Methods "GET,POST,PUT,DELETE,OPTIONS";
    add_header Access-Control-Allow-Headers "*";

    if ($request_method = 'OPTIONS'){
        return 204;
    }

 

### 如何在宝塔面板配置Nginx以实现Java应用的CORS设置 #### 编辑Nginx配置文件 为了使Java应用程序能够通过Nginx正确处理来自不同源的请求,在宝塔面板中的操作流程如下: 登录至宝塔面板并导航到目标网站的设置界面。于“配置文件”标签页下,向`server`区块或是具体的`location`区块追加必要的HTTP响应头字段来启用资源共享(CORS)[^1]。 对于Java后端服务而言,如果期望无条件接受任何来源地发起的请求,则可以在Nginx配置里加入下面几行指令: ```nginx add_header 'Access-Control-Allow-Origin' '*' always; add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, OPTIONS'; add_header 'Access-Control-Allow-Headers' 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization'; ``` 上述命令设置了允许所有来源(`*`)发送请求,并指定了可使用的HTTP方法以及额外许可的自定义头部列表[^2]。 考虑到某些情况下可能还需要支持凭证(如Cookies)随附于站请求之中,此时应进一步调整配置参数: ```nginx add_header 'Access-Control-Allow-Credentials' 'true'; ``` 值得注意的是,一旦启用了`Access-Control-Allow-Credentials`选项,就不能再将`Access-Control-Allow-Origin`设为通配符`*`;而是应该指定确切的信任名地址[^3]。 因此,当需要同时满足带认证信息的请求时,应当修改成如下形式: ```nginx if ($request_method = 'OPTIONS') { add_header 'Access-Control-Allow-Origin' '$http_origin' always; } else { add_header 'Access-Control-Allow-Origin' 'https://example.com' always; # 替换成实际信任的站点URL } add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, OPTIONS'; add_header 'Access-Control-Allow-Headers' 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization'; add_header 'Access-Control-Allow-Credentials' 'true'; ``` 这段代码片段展示了针对预检请求(Preflight Request)和其他类型的正常请求分别设定不同的`Access-Control-Allow-Origin`值的方法,以此确保既安全又灵活地实现了访问控制逻辑。 最后保存更改后的配置文件,并重启Nginx服务以便让新的设置生效。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值