前提
今天登陸Jenkins時,覺得使用tomcat默認的8080端口麻煩,便使用Nginx做了一個反向代理。於是出現了以下錯誤
1. 問題描述
Jenkins配置好ssh server點擊保存時出現如下錯誤:
2. 原因
Jenkins在http請求頭部中放置了一個名爲.crumb的token。在使用反向代理時,
如果Jenkins設置中勾選了“Prevent Cross Site Request Forgery exploits”,
代理服務器會認爲.crumb爲非法頭部而去掉,導致跳轉失敗。
3. 解決方式
1. 在反向代理服務器Nginx中設置ignore_invaild_headers
在nginx server配置段中添加如下內容:
server {
ignore_invalid_headers off;
}
2. 在Jenkins全局安全設置中取消勾選“Prevent Cross Site Request Forgery exploits”,如下圖: