Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/369.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
Java 无法通过Nginx反向代理在Tomcat上远程部署_Java_Tomcat_Nginx_Deployment - Fatal编程技术网

Java 无法通过Nginx反向代理在Tomcat上远程部署

Java 无法通过Nginx反向代理在Tomcat上远程部署,java,tomcat,nginx,deployment,Java,Tomcat,Nginx,Deployment,在我的测试服务器(Fedora26)上安装了tomcat环境。一切都是库存包装。我还在前端安装并设置了Nginx反向代理tomcat users.xml,我可以按预期登录到app manager 现在,当我尝试向其部署WAR时,我的Nginx日志中出现严重故障: 2017/09/25 15:12:21 [crit] 13878#0: *36 open() "/var/lib/nginx/tmp/client_body/000000XXXX" failed (13: Permission deni

在我的测试服务器(Fedora26)上安装了tomcat环境。一切都是库存包装。我还在前端安装并设置了Nginx反向代理<设置了code>tomcat users.xml,我可以按预期登录到app manager

现在,当我尝试向其部署WAR时,我的Nginx日志中出现严重故障:

2017/09/25 15:12:21 [crit] 13878#0: *36 open() "/var/lib/nginx/tmp/client_body/000000XXXX" failed (13: Permission denied), client: 200.x.x.x, server: some-sandbox.com, request: "POST /manager/html/upload?org.apache.catalina.filters.CSRF_NONCE=XXXXXXXxxxx HTTP/1.1", host: "some-sandbox.com", referrer: "https://some-sandbox.com/manager/html/upload?org.apache.catalina.filters.CSRF_NONCE=XXXXXXXxxxx
然后,Nginx将500个内部服务器返回到浏览器

我会出什么差错?有什么建议可以解决吗


谢谢。

您可以为当前用户检查文件上的用户权限。

显然,临时上载文件夹
/var/lib/nginx/tmp
存在一些权限问题。我已确保整个路径由正确的系统用户拥有。但问题依然存在

因此,为了避免这个问题,我决定将Nginx配置为完全跳过缓存客户机主体。就我而言,在代理之前缓存没有实际价值

Nginx 1.7.11引入了一项新指令。如果将其设置为
关闭
,缓冲将被禁用。因此,任何权限问题都不会影响上传

因此,我的服务器部分有以下内容:

location / {
    proxy_request_buffering off;
    proxy_set_header X-Forwarded-Host $host;
    proxy_set_header X-Forwarded-Server $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_pass http://127.0.0.1:8080/;
}

可能是因为这个原因,请发布nginx.conf和server.xml。您可以检查当前用户在文件中的用户权限。@Oleg我已经检查了
/var/lib/nginx/tmp
,它的所有者是
apache
(nginx用户)。还有什么建议吗?那tomcat呢?部署是由tomcat完成的。这应该是一个注释而不是回答。正如上面注释中所述,文件夹
/var/lib/nginx/tmp
由适当的用户拥有。