我在 Nginx 中遇到了安全问题,并且X-Accel-Redirect
.
Nginx 服务器 777
location /api {
allow 100.100.100.1;
deny all;
proxy_pass http://api-server;
}
#The api-sever will respond with an `X-Accel-Redirect` header to the following location `@server888`
location @server888 {
internal;
proxy_pass http://server888$request_uri;
}
Nginx Server 888具有相同的配置/api
location /api {
allow 100.100.100.1;
deny all;
proxy_pass http://api-server;
}
但是,从源 ip100.100.100.1
到Server 777的所有请求都从Server 777获得 403 响应,并出现错误:
access forbidden by rule while reading response header from upstream
从我所见,该@server888
位置阻止了请求,但我的理解是该internal
指令应该允许来自 的请求X-Accel-Redirect
,而不必allow
为100.100.100.1
.
这个对吗?或者我是否需要在该@server888
位置授予更广泛的权限才能使其正常工作?
因此,看起来自定义
location
(@server888)需要允许环回地址才能使其工作:我不确定这里的技术解释是什么。
通常,
internal
当请求由以下方式生成时,该指令应允许访问X-Accel-Redirect
:http://nginx.org/en/docs/http/ngx_http_core_module.html#internal
我在这里的猜测是,这仅适用于
location
本地,而不是上游的反向代理,或者此位置deny all;
在配置的早期继承了更全局的。