Files
gerrit/服务无法访问解决方案.md
2025-12-22 17:12:39 +08:00

3.5 KiB
Raw Permalink Blame History

Gerrit 服务无法访问 - 解决方案

问题现象

访问 http://101.43.95.130:8080 时显示"连接失败"。

可能的原因

  1. 服务未启动
  2. 服务启动失败
  3. 端口被占用
  4. 防火墙阻止

解决步骤

步骤 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

这个脚本会自动:

  1. 检查 review_site 是否存在
  2. 检查服务状态
  3. 如果未运行,自动启动
  4. 显示访问地址

常见问题

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

验证服务运行

服务启动成功后:

  1. 检查进程

    ps aux | grep gerrit
    
  2. 检查端口

    netstat -tlnp | grep 8080
    
  3. 访问 Web 界面

    • 打开浏览器
    • 访问:http://101.43.95.130:8080
    • 应该能看到 Gerrit 登录页面

如果还是无法访问

请提供以下信息:

  1. bin/gerrit.sh status 的输出
  2. tail -50 logs/error_log 的最后几行
  3. netstat -tlnp | grep 8080 的输出

我可以帮您进一步排查。