前提

今天登陆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”,如下图: