首发于:个人博客html
IOS同事说他发现了sentry的一个bug。说是由于9.0.0的bug致使debug file 提示上传成功,可是上网站却发现根本没有上传。因此就开始了个人升级之路。nginx
由于个人sentry不单单用在了服务器端,并且还用在了客户端上。因此我须要解决若是sentry中止了,那么如何解决请求等待的问题。git
那么我首先想到的就是修改nginx的配置文件。github
下面是我更新的相关内容web
server {
listen 80;
server_name track.example.com;
set_real_ip_from 127.0.0.1;
real_ip_header X-Forwarded-For;
real_ip_recursive on;
location / {
// 添加这两行
default_type text/html; // 设置 content-type 表示这是一个网页
return 202; # 返回 202 表示已经接收,可是并不处理
client_max_body_size 100M;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host-Real-IP $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-Pcol http;
proxy_pass http://localhost:10000;
}
}
复制代码
使用这两行,就能够保证客户端正常请求了数据,可是我却把它给抛弃了。保证客户端的正常浏览。docker
接下来就是对sentry进行升级了。数据库
首先,进入到指定目录bash
cd /data/
复制代码
对相关目录进行备份(备份是个好习惯,千万不要丢弃)服务器
cp -r onpremise onpremise2
复制代码
而后进入目录app
cd onpremise
复制代码
中止sentry的运行
docker-compose down
复制代码
拉取最新代码
git pull
复制代码
这个时候可能会提示如下错误:
error: Your local changes to the following files would be overwritten by merge:
docker-compose.yml
Please commit your changes or stash them before you merge.
复制代码
首先咱们先对内容进行diff,查看修改的部分:
git diff docker-compose.yml
复制代码
将输出记录下来,以便更新代码以后对该文件进行还原。
这是由于你对该文件进行了修改。可是该文件是被追踪的,因此说须要先还原,而后再次拉取,执行如下代码:
git checkout docker-compose.yml
git pull
复制代码
执行完成后就表示拉取最新版本库成功了。
如今就要把配置的docker-compse.yml
内容给还原回来。
接下来就是设置环境变量了:
export SENTRY_IMAGE='sentry:9.1.2'
复制代码
为何要这么设置呢。由于经过阅读Dockerfile
文件可得知,该文件须要读取环境变量SENTRY_IMAGE
来拉取相关的docker文件。
再次构建咱们的服务
docker-compose build --pull
复制代码
运行中可能会提示:
09:31:05 [WARNING] sentry.utils.geo: settings.GEOIP_PATH_MMDB not configured.
复制代码
这个提示应该没有配置GEO数据库的地址。先无论,等之后之后机会能够再去研究它。
如今就是要执行迁移了:
docker-compose run --rm web upgrade
复制代码
在迁移中可能会提示以下消息:
The following content types are stale and need to be deleted:
sentry | dsymapp
sentry | versiondsymfile
sentry | projectdsymfile
sentry | grouphashtombstone
Any objects related to these content types by a foreign key will also
be deleted. Are you sure you want to delete these content types?
If you're unsure, answer 'no'.
Type 'yes' to continue, or 'no' to cancel:
复制代码
由于我也不清楚发生了什么。因此个人回答是no
。
迁移完成就是剩下启动服务了:
docker-compose up -d
复制代码
一切正常。
最后咱们就是把咱们的nginx 202响应给注销掉,而后重启nginx就ok了。
再次进入以后,发现了UI有一些变化。而且IOS大哥的问题也解决了。可是也产生了一些问题,就是统计的bug统计数据都没了。这不重要,只要bug数据还在,那就能够。
经过此次的升级,了解了不少的东西,对个人成长颇有帮助。