【问题标题】:Where did the socket for GitLab-workhorse go?GitLab-workhorse 的套接字去哪儿了?
【发布时间】:2022-11-13 11:22:36
【问题描述】:

/var/opt/gitlab/gitlab-workhorse/ 文件夹缺少一个套接字并且通常几乎是空的。

我正在尝试设置 GitLab + nginx 代理。当我尝试加载页面时,出现 502 错误。 在弄清楚什么对我不起作用后,我意识到(gitlab-ctl status):

down: gitlab-workhorse: 0s, normally up, want up; run: log: (pid 3756258) 12450s

然后我决定查看我的主力插座,这就是我在 /var/opt/gitlab/gitlab-workhorse 文件夹(ls -ap /var/opt/gitlab/gitlab-workhorse/)中看到的:

./ ../ config.toml VERSION

我的 gitlab 设置:

nginx['enable'] = false
web_server['external_users'] = ['www-data']
gitlab_rails['trusted_proxies'] = ['127.0.0.1', <external-server-ip>]
gitlab_workhorse['listen_network'] = "unix"
gitlab_workhorse['listen_addr'] = "/var/opt/gitlab/gitlab-workhorse/sockets/socket"

nginx日志:

connect() to unix:/var/opt/gitlab/gitlab-workhorse/sockets/socket failed (13: Permission denied) while connecting to upstream

据我了解,我缺少所需的软件或一些文件。如果这是问题,我在哪里可以得到它们。如果没有,为什么我的主力无法工作?

p.s.对不起谷歌翻译:)

更新。 (/var/log/gitlab/gitlab-workhorse/current):

{"build_time":"20221024.191252","level":"info","msg":"Starting","time":"2022-10-30T20:05:21+03:00","version":"v15.5.1"}
{"address":"localhost:9229","level":"info","msg":"Running metrics server","network":"tcp","time":"2022-10-30T20:05:21+03:00"}
{"level":"info","msg":"keywatcher: starting process loop","time":"2022-10-30T20:05:21+03:00"}
{"address":"/var/opt/gitlab/redis/redis.socket","level":"info","msg":"redis: dialing","network":"unix","time":"2022-10-30T20:05:21+03:00"}
{"address":"/var/opt/gitlab/gitlab-workhorse/sockets/socket","level":"info","msg":"Running upstream server","network":"unix","time":"2022-10-30T20:05:21+03:00"}
{"error":"listen unix /var/opt/gitlab/gitlab-workhorse/sockets/socket: bind: no such file or directory","level":"fatal","msg":"shutting down","time":"2022-10-30T20:05:21+03:00"

【问题讨论】:

  • 尝试在 /var/opt/gitlab/gitlab-workhorse 文件夹中创建 sockets 文件夹并授予 gitlab-workhorse 在那里创建文件的权限
  • 没有帮助 :(
  • 您在 nginx 日志中查看哪个站点的日志?你的 gitlab 安装有选项nginx['enable'] = false。请检查 gitlab-workhorse 的日志 - 可能有关于打开 unix 套接字的行
  • @AlexanderUshakov 不幸的是, gitlab-workhorse 日志显示它找不到套接字文件(我将其日志添加到了 upd。)。关于 nginx:我查看了我的代理服务器的日志,由于 gitlab-workhorse 不工作,它无法代理。完全重新安装 gitlab 并没有帮助。
  • 你真的需要为 gitlab_workhorse unix socket 使用路径/var/opt/gitlab/gitlab-workhorse/sockets/socket 吗?尝试类似 `gitlab_workhorse['listen_addr'] = "/tmp/gitlab-workhorse-socket" 进行测试

标签: nginx gitlab nginx-reverse-proxy gitlab-ce


【解决方案1】:

listen_addr 设置中的套接字路径更改为现有目录。

例如gitlab_workhorse['listen_addr'] = "/var/opt/gitlab/gitlab-workhorse/socket"gitlab_workhorse['listen_addr'] = "/tmp/gitlab-workhorse-socket"

【讨论】:

    【解决方案2】:

    对我来说,我已经升级到 15.5,并在 nginx 错误日志中看到了这一点:

    connect() to unix:/var/opt/gitlab/gitlab-workhorse/socket failed (2: No such file or directory) while connecting to upstream

    看起来 gitlab 的人将该套接字文件的路径从 /var/opt/gitlab/gitlab-workhorse/socket 更改为 /var/opt/gitlab/gitlab-workhorse/sockets/socket

    更改/etc/nginx/sites-available/gitlab 中的路径,然后运行nginx -s reload &amp;&amp; systemctl restart nginx(或更改之前在gitlab.rb 中建议的路径并运行gitlab-ctl reconfigure

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-05-21
      • 2011-03-03
      • 2014-03-15
      • 2015-07-17
      • 2012-10-30
      • 2013-05-23
      • 1970-01-01
      相关资源
      最近更新 更多