Nginx反向代理设置

Nginx反向代理设置,nginx,reverse-proxy,phpredis,Nginx,Reverse Proxy,Phpredis,我正在设置服务器配置,其中包括 运行Nginx的前端服务器。称之为example.com 另一台同样运行Nginx的服务器(在同一网络上,可通过内部IP访问,例如10.118.10.9)运行phpRedisAdmin 前端服务器有一个反向代理配置,如下所示 地点^~/admin/{ 代用通行证; } 现在当我浏览到`' Memcache管理页面正好出现。对控制台日志的检查现在显示错误。然后,我需要单击“添加另一个键”链接,该链接将显示phpMemcachedAdmin编辑表单。当我检查此表单

我正在设置服务器配置,其中包括

  • 运行Nginx的前端服务器。称之为
    example.com
  • 另一台同样运行Nginx的服务器(在同一网络上,可通过内部IP访问,例如
    10.118.10.9
    )运行phpRedisAdmin
  • 前端服务器有一个反向代理配置,如下所示

    地点^~/admin/{ 代用通行证; }

现在当我浏览到`'

Memcache管理页面正好出现。对控制台日志的检查现在显示错误。然后,我需要单击“添加另一个键”链接,该链接将显示phpMemcachedAdmin编辑表单。当我检查此表单的代码时,我看到

<form action="/redisadmin/edit.php?s=0" method="post">
由于表单的操作URL实际上应该是

<form action="/admin/redisadmin/edit.php?s=0" method="post">


一路上的某个地方,
/admin
位被砍掉了。我怀疑这是由于Nginx反向代理设置无效造成的。然而,我是一个新手,所以我不知道我应该如何纠正这个问题。我非常感谢您的帮助。

检查了redis admin页面,发现它从服务器端读取请求URI,这意味着它将在帖子表单的URL中包含前导斜杠“/”:

<form action="<?php echo format_html($_SERVER['REQUEST_URI'])?>" method="post">

将上述重写规则添加到“/”栏中的设置中,看看是否有效。

正如@Johnnie Zhang所指出的,这里问题的根源是导致后期操作被视为绝对路径的前导/。然而,经过一点调查后,我得出结论,尽管phpredisadmin作为独立的Redis web GUI使用时是一个出色的全方位选项,但当通过反向代理使用时,它可能会带来太多问题。

谢谢。见下面我的答案
<form action="<?php echo format_html($_SERVER['REQUEST_URI'])?>" method="post">
location / {
    rewrite ^/redisadmin/(.*)$ /admin/redisadmin/$1 last;