[IIS][GitLab] Reverse Proxy 后的小问题

同步发表 Blog:[IIS][GitLab] Reverse Proxy 后的小问题

既上次 [IIS][GitLab] 利用 IIS Reverse Proxy 将 GitLab 加上 Https 将 gitlab 摆到 iis 后面之后,遇到部分功能无法正常使用的问题

  1. 无法浏览 .cs.config 等文件
  2. 无法使用 WebIDE
  3. 无法使用 文件库 -> 比较 功能

问题缘由

  • 无法浏览 .cs.config 等文件
  • 无法使用 文件库 -> 比较 功能

会产生上面两点的原因是 IIS 对静态文件有默认的保护机制,不会将不认识的文件扩展名暴露给外部连接下载,其中 .config 更是 ASP.NET 设置档的文件扩展名,但这站台只是当作中继站做转发的动作而已,所以我判断可以关闭所有安全机制。

解决方法

  1. 开启 web.config
  2. 找到 configuration -> system.webServer -> staticContent 结点 (若无则添加)
  3. 添加下列设置


  1. 找到 configuration -> system.webServer -> security 结点 (若无则添加)
  2. 添加下列设置

	
		
	
	
		
	
	
		
	


问题缘由

  • 无使用 WebIDE

这个问题是因为 IIS 将网址重复 UrlEncode 两次,让藏在后面的 gitlab 无法正确辨识网址。

解决方法

  1. 开启 web.config
  2. 找到 configuration -> system.webServer -> rewrite -> rules 结点
  3. 添加 useOriginalURLEncoding 属性如下

	....

  1. 找到 gitlab 反向代理 rule -> action 结点并修改 url 属性如下

参考数据:

  1. How to disable Request Filtering for a specific website on IIS 7.5?
  2. IIS10 URL Rewrite 2.1 double encoding issue
  3. Running Jenkins behind IIS

发表评论