Ubuntu
Nginx背後的Tomcat管理器403
這幾天讓我發瘋了。要麼我做錯了,非常愚蠢,要麼是兩者兼而有之。
我在 Ubuntu 11.10 上。我執行了以下命令:
sudo apt-get install nginx sudo apt-get install tomcat7 tomcat7-admin
以下是我的
tomcat-users.xml
文件:<?xml version='1.0' encoding='utf-8'?> <tomcat-users> <role rolename="admin" /> <role rolename="manager" /> <user username="admin" password="secret" roles="admin,manager" /> </tomcat-users>
我設置了以下 nginx 配置:
server { listen 80; server_name tomcat.example.com; location / { proxy_pass http://localhost:8080; proxy_set_header Authorization "Basic YWRtaW46c2VjcmV0"; } }
在哪裡
YWRtaW46c2VjcmV0
編碼。admin:secret``Base64
訪問
http://tomcat.example.com
工作正常;但是,每當我嘗試訪問時,http://tomcat.example.com/manager/html
我都會從 Tomcat 獲得 403 頁面。我嘗試重新啟動 nginx 和 tomcat 均無濟於事。每當我嘗試進入 Tomcat 管理器時,我的 Nginx 訪問日誌中都會出現以下內容:
xxx.xxx.xxx.xxx - admin [29/Dec/2011:06:20:22 -0500] "GET /manager/html HTTP/1.1" 403 431 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.63 Safari/535.7"
每當我嘗試進入 Tomcat 管理器時,以下內容都會出現在我的 Tomcat 訪問日誌中:
127.0.0.1 - admin [29/Dec/2011:06:20:22 -0500] "GET /manager/html HTTP/1.0" 403 1108
我計劃通過在 Nginx 上設置 SSL 以及 HTTP 基本身份驗證來進一步保護這一點,但我需要先讓基礎工作正常。有人知道這裡發生了什麼嗎?
與 Tomcat 安裝相同的截圖完全矛盾,一個角色根本
manager
不夠用。我需要一個角色manager-gui
。我將送出錯誤的“它有效!” 頁面作為一個錯誤,因為這是一個非常令人沮喪的過程。還有其他經理角色,這個預設的“它工作!” 頁面應該詳細說明,例如
manager-script
。