nginx:上游不工作

nginx:上游不工作

我的上游出现了问题。当我传递 时,我得到的 URL 出现http://backend/f?p=4550404 错误https://secure.toto02.com/ords/pls/manitou/4550。我试图做的是,https://secure.toto 02.com/ords/pls/manitou/4550在上游将请求发送到 时,将其保留在导航器中http://192.167.1.79:8080/ords/f?p=4550。我想隐藏请求。

我不知道 nginx 服务器配置文件出了什么问题。有人可以帮忙吗?

upstream backend {
    server 192.167.1.79:8080;
}

server {
    listen 443 ssl spdy;
    server_name   secure.toto02.com;
    ssl on;
    ssl_certificate      /etc/nginx/ssl/server.crt;
    ssl_certificate_key  /etc/nginx/ssl/server.key;


    location  ~ "^/(.*)/pls/ords/(\d{1,4})$" {
        proxy_pass http://backend/ords/f?p=$2;        
    }
 }

答案1

您在指令中使用了变量proxy_pass,这使得上游服务器重定向直接转发到客户端,因为 nginx 无法猜测该做什么。这就是您在浏览器中看到此结果的原因。

确保您的上游服务器正确回答http://192.167.1.79:8080/ords/f?p=4550使用与 nginx 所执行完全相同的上下文。

例如这里至少有两件事出了问题:

  • Host您忘记用您的真实域名替换标头,因此 nginx 正在使用Host: backend它。
  • 您的上游服务器正在重定向/ords/f?p=4550至(根据您的评论)/ords/f?p=4550:1:

相关内容