在我的测试服务器(Fedora 26)上安装了一个tomcat环境。一切都是库存包。我还在前面安装并设置了Nginx反向代理。已设置tomcat-users.xml
,我可以按预期登录应用管理器。
现在,当我尝试为其部署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内部服务器返回浏览器。
我有什么问题?有任何建议如何解决?
感谢。
答案 0 :(得分:0)
显然,临时上传文件夹/var/lib/nginx/tmp
存在一些权限问题。我确保整个路径都归正确的系统用户所有。但问题仍然存在。
因此,为了避免这个问题,我决定将Nginx配置为跳过缓存客户端主体。出于我的目的,在代理之前缓存没有实际价值。
Nginx 1.7.11引入了一个新的proxy_request_buffering指令。如果将其设置为off
,则将禁用缓冲。因此任何权限问题都不会影响上传。
所以我的服务器部分有这个:
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/;
}
答案 1 :(得分:-1)
您可以检查当前用户的文件的用户权限。