Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Redirect Nginx反向代理到不同的服务器_Redirect_Nginx_Proxy - Fatal编程技术网

Redirect Nginx反向代理到不同的服务器

Redirect Nginx反向代理到不同的服务器,redirect,nginx,proxy,Redirect,Nginx,Proxy,我们正在尝试使用nginx设置反向代理,将流量从DMZ Web服务器重定向到内部网络 流量来自443,点击apache页面用户登录ldap服务器,然后我们将流量从apache重定向到nginx(它正在8089上侦听)。然后,Nginx将代理该流量返回到内部网络 apache重定向工作正常,并且至少有一些nginx代理正在工作。内部服务器上的页面已加载,但页面上的所有资源都在双重附加URL。例如: https://webserver.us.com==重定向==>http://webserver.u

我们正在尝试使用nginx设置反向代理,将流量从DMZ Web服务器重定向到内部网络

流量来自443,点击apache页面用户登录ldap服务器,然后我们将流量从apache重定向到nginx(它正在8089上侦听)。然后,Nginx将代理该流量返回到内部网络

apache重定向工作正常,并且至少有一些nginx代理正在工作。内部服务器上的页面已加载,但页面上的所有资源都在双重附加URL。例如:

https://webserver.us.com==重定向==>http://webserver.us.com:8089==Nginx代理==>http://internal.server.com:8080/page

http://internal.server.com/page loads,但页面上的所有资源都试图加载为:

http://internal.server.com/page/page/resource

当直接访问内部页面时,它们当然是http://internal.server.com:8080/page/resource

我确信在我们设置代理传递、代理重定向和根/位置时有一个错误,但我无法找出它

我们的Nginx.conf如下:(仅供参考,这是一台solaris服务器)

worker\u进程1;
pid/var/run/nginx.pid;
事件{
工人(1024);;
}
http{
包括mime.types;
默认_类型应用程序/八位字节流;
发送文件到;
保持生命超时65;
服务器{
听8089;
服务器名称;
access_log/var/opt/csw/nginx/logs/access.log;
error_log/var/opt/csw/nginx/logs/error.log;
根http://:8080;
index.html index.htm;
地点/{
代理传递http://:8080//;
代理重定向http://:8080/http://:8080/;
代理\u下一个\u上游错误超时无效\u头http\u 500 http\u 502 http\u 503 http\u 504;
代理缓冲关闭;
代理设置头主机$Host;
代理集头X-Real-IP$remote\u addr;
proxy\u set\u header X-Forwarded-For$proxy\u add\u X\u Forwarded\u For;
}
}
}
每当我们在“location”参数中设置“/”以外的任何内容时,都会返回nginx 404,错误日志显示:
“/var/opt/csw/nginx//RES_NOT_FOUND”

客户端请求
webserver.us.com/
,该请求通过反向代理转换为
internal.server.com:8080/page/

文档指定了资源URI,如
/page/resource
,因此客户端请求这些URI作为
webserver.us.com/page/resource
,通过反向代理将其转换为
internal.server.com:8080/page/page/resource

最简单的解决方案是使反向代理透明。您可以添加精确的匹配位置,以将
/
映射到应用程序的入口点:

location = / {
    rewrite ^ /page/ last;
}
location = / {
    rewrite ^ /page/ last;
}