Nginx 从apache提供a.html,同时请求b.html

Nginx 从apache提供a.html,同时请求b.html,nginx,reverse-proxy,nginx-location,Nginx,Reverse Proxy,Nginx Location,我正在为apache创建一个nginx反向代理。Apache在端口8080上运行,nginx在80上运行 我希望实现以下目标: 当我请求页面http://server/test.html它应该代理到http://server:8080/unknown.html 稍后,我将在页面上执行一些eval操作,并将用户重定向到正确的页面,但我甚至无法实现这一点。我总是得到test.html作为响应返回 我的nginxconfig: server { listen 80;

我正在为apache创建一个
nginx反向代理。Apache在端口
8080
上运行,nginx在
80
上运行

我希望实现以下目标:

当我请求页面
http://server/test.html
它应该代理到
http://server:8080/unknown.html

稍后,我将在页面上执行一些
eval
操作,并将用户重定向到正确的页面,但我甚至无法实现这一点。我总是得到
test.html
作为响应返回

我的
nginx
config:

server {
        listen   80;

        root /var/www/;
        index index.php index.html index.htm;

        server_name example.com;

        location / {
               # try_files $uri $uri/ /index.php;
        }

        location ~ \.html$ {

                proxy_set_header X-Real-IP  $remote_addr;
                proxy_set_header X-Forwarded-For $remote_addr;
                proxy_set_header Host $host;

                #rewrite ^/unknown.html;
                proxy_pass http://127.0.0.1:8080;
                proxy_redirect http://127.0.0.1/test.html http://127.0.0.1:8080/unknown.html;
         }

         location ~ /\.ht {
                deny all;
        }
}

我还没有任何经验,但我渴望学习如何使其工作…

首先,代理重定向指令与您需要的相反。它仅用于重写上游3xx响应中的
位置
响应头。有关详细信息,请参阅

您可以使用
重写。。。执行代理传递的位置块内的break
语句,例如:

location ... {
    rewrite ^/test.html$ /unknown.html break;
    proxy_pass ...;
}
有关详细信息,请参阅