由于项目的需要近日升级了 MySQL 5.5,顺便也把 Gitlab 升级到了 6.7。结果今天在应用服务器上 git pull
的时候出现错误:
|
|
于是尝试了一下 git clone
,也还是有错误:
|
|
因为在我自己的电脑上 git 操作一切正常,而两个环境主要的区别就是连接 git 服务的协议,我的机器上用基于 ssh
的 git
协议,而应用服务器上通过 http
协议访问服务。所以问题肯定是和 http
协议有关,于是开始查看 gitlab 的日志,但是看不出有什么问题,查看 Nginx 的日志也没有任何错误。
最后,经过一番搜索,找到了这个Issue。
看来是和这个代码有关系。在这个代码里面,对原来直接返回的 block
内容用 encode_chunk
方法重新进行了封装,在原来的 block
前添加了一行块大小信息。
由于我现在的 Nginx 是 1.0 的版本,这个版本默认是没有包含 chunking module 的,所以无法正确处理 chunked response,看来只要按大家说的升级 Nginx 就可以了。
我之前是直接通过 yum install
安装的 Nginx,而默认的 yum
封包库里只有 Nginx 1.0,所以我添加了 Webtatic 的封包库,然后卸载 Nginx 1.0,安装 Nginx 1.4。
|
|
整个升级过程非常快,我事先还备份了 /etc/nginx
,但是升级后发现配置文件都还在,而且启动 Nginx 1.4 十分顺利。再尝试 git pull
,果然OK了!