内部可见的jenkins实例中的jenkins webhook代理

 丁军东建宏 发布于 2023-02-13 13:03

我在家里的私人网络中运行Jenkins实例.此实例在github上轮询(每小时)各种存储库以进行更改并对这些更改执行操作.

为了减少我的网络和github上的负载,我想实现webhooks,但是对于打开我的Jenkins安装到互联网,或者甚至到我可以期待webhook调用的特定几个IP地址感到不太高兴.

我可以在牺牲主机上安装一种代理,将请求转发到我网络中的真实服务器吗?呼叫参数卫生将是一个很好的额外.

1 个回答
  • 我们有一个类似的设置,我们有一个暴露于互联网的主机,从我们的各种git提供程序接收webhooks,必要时进行一些重写,然后在内部将钩子转发到Jenkins(或任何地方).

    这是通过一个非常简单的nginx配置完成的:

    # Allow *only* the notifyCommit endpoint, and don't expose any other info
    location = /git/notifyCommit {
      proxy_pass              http://jenkins.int.example.com:8080/git/notifyCommit
      proxy_hide_header       X-Powered-By;
      proxy_intercept_errors  on;
      error_page              500 /;
    }
    

    location =语法的使用意味着只匹配那个确切的URL(加上查询参数).其他一切都会引发404错误.


    或者,您可以尝试在公开的主机上运行git-webhook-proxy ; 它是我创建的一个网络服务器,它会拦截webhooks,然后在通过内部网络将webhook转发到Jenkins之前在本地缓存存储库.

    2023-02-13 13:05 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有