Nginx proxy_pass 某些文件出现 500 错误

Nginx proxy_pass 某些文件出现 500 错误

StackExchange 这边的新手。我一直在尝试设置一个 nginx 服务器作为前端 http 服务器,重定向到网络内的其他服务器(稍后用于负载平衡,但现在我们只希望代理能够正常工作),

我对该位置进行了以下设置:

   location /site/ {
        proxy_pass   http://www.mysite.com:port/site/;
        proxy_set_header   X-Real-IP        $remote_addr;
        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
        proxy_max_temp_file_size 0;

        client_max_body_size       10m;
        client_body_buffer_size    128k;

        proxy_connect_timeout      90;
        proxy_send_timeout         90;
        proxy_read_timeout         90;

        proxy_buffer_size           4k;
        proxy_buffers               4 32k;
        proxy_busy_buffers_size     64k;
        proxy_temp_file_write_size  64k;
    }

我现在的问题是,它可以很好地加载第一页(首页)和第二页(登录表单)上的所有内容,但是当用户登录并进入第三页(仪表板)时,浏览器无法加载内部动态加载的某些页面(想想 jsp 包含的内容)。

有趣的是,如果我设置了一个位置,http://www.mysite.com:port然后只需通过http://localhost:8080/site/它访问它,它就会加载所有内容,进行登录,并且用户就可以使用里面的所有内容,而不会出现问题。

现在,您可以说,“好吧,就让他们那样使用它”,但我想在另一台服务器上隐藏该页面的全名。

我怎样才能做到这一点而不让这些文件返回错误 500?

PS:设置代理来处理 JBoss 应用服务器的数据。(在这里添加这个,因为可能是 JBoss 服务器不太喜欢这个名称的代理处理)

答案1

我会认为它没有正确传递 post/get/session 数据?在使用 nginx 代理时,我发现最好的线索是跟踪代理框 nginx 日志(位于 /var/log/nginx)之间的时间戳,并将其与正在通过的系统上的日志进行比较。我经常会发现诸如 URL 重写损坏(例如意外配置 nginx 以将 uri 数据传递给 _GET 变量而不是传递原始 url)之类的东西,或者只是“未找到”的东西。尤其是 500 错误

相关内容