3.5 KiB
3.5 KiB
Gerrit 服务无法访问 - 解决方案
问题现象
访问 http://101.43.95.130:8080 时显示"连接失败"。
可能的原因
- 服务未启动
- 服务启动失败
- 端口被占用
- 防火墙阻止
解决步骤
步骤 1:检查服务状态
cd /home/renjianbo/gerrit_install/review_site
bin/gerrit.sh status
步骤 2:如果服务未运行,启动服务
cd /home/renjianbo/gerrit_install/review_site
# 设置 Java 环境
export JAVA_HOME=/usr/local/java/jdk-17.0.12+7
export PATH=$JAVA_HOME/bin:$PATH
# 启动服务
bin/gerrit.sh start
# 等待几秒后检查状态
sleep 5
bin/gerrit.sh status
步骤 3:如果 review_site 目录不存在
说明需要重新初始化:
cd /home/renjianbo/gerrit
chmod +x reinit_gerrit.sh
./reinit_gerrit.sh
或者手动执行:
cd /home/renjianbo/gerrit_install
export JAVA_HOME=/usr/local/java/jdk-17.0.12+7
export PATH=$JAVA_HOME/bin:$PATH
java -jar gerrit-3.9.0.war init \
-d review_site \
--batch \
--no-auto-start \
-D gerrit.canonicalWebUrl=http://101.43.95.130:8080/ \
--install-plugin=download-commands \
--install-plugin=replication \
--install-plugin=reviewnotes
# 配置启动脚本
cd review_site
cp bin/gerrit.sh bin/gerrit.sh.bak
sed -i "2i export JAVA_HOME=/usr/local/java/jdk-17.0.12+7\nexport PATH=\$JAVA_HOME/bin:\$PATH" bin/gerrit.sh
# 启动服务
bin/gerrit.sh start
步骤 4:检查日志
如果服务启动失败,查看错误日志:
cd /home/renjianbo/gerrit_install/review_site
tail -50 logs/error_log
步骤 5:检查端口
# 检查端口是否被监听
netstat -tlnp | grep 8080
# 或
ss -tlnp | grep 8080
# 检查是否有其他进程占用端口
lsof -i :8080
步骤 6:检查防火墙
# CentOS 7
sudo firewall-cmd --list-ports
sudo firewall-cmd --add-port=8080/tcp --permanent
sudo firewall-cmd --reload
# 或者临时关闭防火墙测试
sudo systemctl stop firewalld
快速诊断脚本
已创建诊断脚本,执行:
cd /home/renjianbo/gerrit
chmod +x 检查并启动服务.sh
./检查并启动服务.sh
这个脚本会自动:
- 检查 review_site 是否存在
- 检查服务状态
- 如果未运行,自动启动
- 显示访问地址
常见问题
Q: 服务启动失败,日志显示什么?
A: 查看日志:
tail -50 /home/renjianbo/gerrit_install/review_site/logs/error_log
常见错误:
- Java 版本不匹配 → 确保使用 Java 17
- 端口被占用 → 检查是否有其他服务占用 8080
- 权限问题 → 确保有读写权限
Q: 端口 8080 被占用怎么办?
A: 可以修改端口:
编辑 review_site/etc/gerrit.config:
[httpd]
listenUrl = http://*:8081/
然后重启服务。
Q: 防火墙阻止访问?
A: 开放端口或临时关闭防火墙测试:
sudo firewall-cmd --add-port=8080/tcp --permanent
sudo firewall-cmd --reload
验证服务运行
服务启动成功后:
-
检查进程:
ps aux | grep gerrit -
检查端口:
netstat -tlnp | grep 8080 -
访问 Web 界面:
- 打开浏览器
- 访问:
http://101.43.95.130:8080 - 应该能看到 Gerrit 登录页面
如果还是无法访问
请提供以下信息:
bin/gerrit.sh status的输出tail -50 logs/error_log的最后几行netstat -tlnp | grep 8080的输出
我可以帮您进一步排查。