nginx https 反射代理 admin api strict-origin-when-cross-origin 解决
时间: 2023-10-22 22:07:25 浏览: 42
要通过nginx进行HTTPS反向代理时,如果目标服务器的admin API使用了strict-origin-when-cross-origin策略,可能会遇到问题。这个策略会要求请求来自同源的网站,否则会被浏览器拒绝。为了解决这个问题,你可以尝试以下方法:
1. 在nginx的配置中添加以下头信息:
```
proxy_set_header Origin "https://your-domain.com";
```
将"your-domain.com"替换为你实际的域名。这将伪造请求的来源为你的域名,使得浏览器认为请求来自同源网站。
2. 如果上述方法无效,你可以尝试配置nginx的proxy_pass指令为以下形式:
```
location /api/ {
proxy_pass https://target-server/;
proxy_set_header Host target-server;
proxy_set_header Referer https://your-domain.com;
}
```
这样可以将请求的Host头和Referer头分别设置为目标服务器的主机名和你的域名,也可以绕过strict-origin-when-cross-origin策略。
3. 如果以上方法仍然无效,那可能需要调整目标服务器的CORS策略,允许来自其他域的请求。具体操作可以参考目标服务器框架或Web服务器的文档。
相关问题
nginx 反向代理 https strict-origin-when-cross-origin
对于nginx的反向代理配置,您可以使用以下方式来实现https的strict-origin-when-cross-origin设置:
在nginx的配置文件中,找到您想要设置的反向代理的location块,然后添加以下配置:
```
proxy_set_header Referrer-Policy strict-origin-when-cross-origin;
```
这样,nginx将会在转发请求时,将Referrer-Policy头部设置为strict-origin-when-cross-origin,从而实现该策略的应用。
请注意,您需要确保nginx已经启用了SSL/TLS,并正确配置了证书和密钥。此外,如果您的后端服务器也支持HTTPS,则需要相应的配置来处理HTTPS连接。
nginx 反向代理 https 关闭strict-origin-when-cross-origin
对于nginx反向代理HTTPS请求时出现的strict-origin-when-cross-origin错误,您可以通过添加以下配置来解决:
在nginx配置文件中,将proxy_set_header指令用于修改请求头部信息。具体地,您需要设置Referer请求头的值为变量$http_referer,并在该指令中添加always参数。如下所示:
```
location / {
proxy_set_header Referer $http_referer always;
proxy_pass https://your_backend_server;
}
```
这样配置后,nginx会将请求头中的Referer字段设置为与当前请求中的Referer字段相同的值,而不会自动更改为当前域名。这样可以避免浏览器发送strict-origin-when-cross-origin错误。
请注意,要将上述配置添加到适当的位置,并将`your_backend_server`替换为您实际使用的后端服务器。完成后,保存并重新加载nginx配置。
希望这能帮到您!如果还有其他问题,请随时提问。