2017-09-25 51 views
1

在我的測試服務器(Fedora 26)上安裝了一個tomcat環境。一切都是股票包。我還在前面安裝並設置了Nginx反向代理。 tomcat-users.xml已設置,我可以按預期登錄到應用程序管理器。無法通過Nginx反向代理在Tomcat上進行遠程部署

現在,當我嘗試部署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

,因爲這https://stackoverflow.com/questions/22382889/nginx-500-error-permission-denied-for-tmp-folder – Oleg

+0

的可能,請post nginx.conf和server.xml –

+0

您可以檢查當前用戶的文件的用戶權限。 – Myo

回答

-1

您可以檢查當前用戶的文件的用戶權限。

+0

這應該是一個評論,而不是一個答案 –

+0

正如上面的評論所述,文件夾「/ var/lib/nginx/tmp」由適當的用戶擁有。 –

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/; 
}