使用现有Nginx安装转发到GitLab子域

Eck*_*ers 7 ubuntu reverse-proxy nginx gitlab

我一直在遵循GitLab维基说明,但似乎缺少一些关键信息.在"使用非捆绑Web服务器"一节中,它从未解释我如何重新配置​​我的Nginx安装以将代理转发到GitLab.

基本上,我想在git.example.com下安装GitLab,但我似乎无法找到现有Nginx安装的配置设置.维基页面继续谈论配置现有的Passenger/Nginx安装,但我没有Passenger,所以我认为这不适用于我的情况.

我想最简单的解决方案是,如果有办法告诉Gitlab使用它的内置Nginx并只是在内部端口上侦听,然后将我的其他Nginx转发到该端口,但我似乎无法弄清楚如何配置Gitlab来处理它.

任何帮助将不胜感激.

小智 11

根据@cyberchis的回答,我简化了这个过程,并且我已经完成了两次相同的设置。我希望它也适合你。

  1. 检查nginx的用户

    1.1. 使用.打开nginx.confnano /etc/nginx/nginx.conf

    1.2. 检查第 1 个。行user www-data;,这里的用户是www-data

  2. 编辑gitlab的external_url

    2.1. 使用.打开gitlab.rbnano /etc/gitlab/gitlab.rb

    2.2. 将该行编辑external_url 'GENERATED_EXTERNAL_URL' external_url 'http://gitlab.yourdomain.com'.

    2.3. 取消注释并将该行更改nginx['enable'] = truenginx['enable'] = false.

    2.4. 取消注释并将该行更改web_server['external_users'] = []web_server['external_users'] = ['www-data'].

  3. 添加gitlab的配置文件

    3.1. 从gitlab 存储库下载gitlab-omnibus-nginx.conf

    3.2. 进入该文件所在目录,将该文件复制到nginx中,扩展名为cp /directory-to-this-file/gitlab-omnibus-nginx.conf /etc/nginx/sites-enabled.

    3.3. 使用 . 打开此文件nano /etc/nginx/sites-enabled/gitlab-omnibus-nginx.conf

    3.4. 将此行更改listen 0.0.0.0:80 default_server;listen 0.0.0.0:7001;// gitlab 在端口 7001 上运行

    3.5. 将此行更改listen [::]:80 default_server;listen [::]:7001;// gitlab 在端口 7001 上运行

    3.6. 将此行更改server_name YOURSERVER_FQDNserver_name www.yourdomain.com.

  4. 配置nginx

    4.1. 使用.打开nginx.confnano /etc/nginx/nginx.conf

    4.2. 添加此配置

http {

   ...
  
   server {
       listen 80;
       server_name gitlab.yourdomain.com;
       location / {
           proxy_pass http://127.0.0.1:7001;
       }
   }
}
Run Code Online (Sandbox Code Playgroud)
  1. 重新配置gitlab并重新加载nginx

    5.1.sudo gitlab-ctl reconfigure

    5.2.sudo systemctl reload nginx

  2. 配置防火墙导出7001端口可选

    由于 gitlab 运行在我的本地服务器上,因此必须允许从外部访问端口 7001。启用它的最简单方法是运行ufw allow 7001.

现在 gitlab 在您应该访问的子域gitlab.yourdomain.com上运行。


Eck*_*ers 9

我搞定了!太疯狂了!

正如我所说,我试图遵循这些说明,但我没有得到任何地方,因为它似乎缺乏如何将现有的Nginx安装链接到Gitlab的说明.

那么,在页面的下方,他们对使用现有Passenger/Nginx安装有了更完整的解释,虽然起初看起来并不像我想要的那样,研究Passenger有点明确表示它不是Ruby - 只是它们(他们很容易找到的安装说明要求你将它安装为ruby gem)并且他们的Ubuntu安装说明允许我合理地将它集成到我现有的Nginx中.

从那里开始,它只是遵循维基中的步骤,尽管有一些变化.

  1. 既有线客车/ Nginx的安装部分没有提什么上一节的非捆绑安装Nginx的说,你需要添加www-dataweb_server['external_users']该行中的gitlab.rb文件.
  2. 由于我在第一次运行它之前重新配置了我的Gitlab安装以删除捆绑的Nginx,因此nginx日志文件/var/log/gitlab/nginx/gitlab_access.log不存在,这在Nginx尝试启动时导致错误,只是创建该空白文件并使其正确读/写访问使它像魅力一样工作.

我现在非常兴奋,希望任何具有特定问题的人都会遇到这个问题,Wiki应该真正更新以简单地删除/合并这两个部分并解释/链接到如何将Passenger安装到现有的Nginx中安装.会给我带来很多困惑和浪费时间.


fil*_*lky 6

在Ubuntu上运行现有的Nginx服务器

  1. 安装gitlab
  2. 编辑配置文件/etc/gitlab/gitlab.rb并取消注释或追加以下内容:
    • nginx ['enable'] = false
    • unicorn ['enable'] = false
    • gitlab_rails ['internal_api_url'] =' http: //git.yourdomain.com '
    • web_server ['external_users'] = ['www-data']
  3. 启动捆绑的postgres数据库服务器
    • sudo gitlab-ctl启动postgresql
  4. 重新配置
    • sudo gitlab-ctl reconfigure
  5. 将git lab的nginx配置文件添加到/etc/nginx/sites-available/gitlab-example.conf并通过启用站点启用它
  6. 为nginx启用乘客
  7. 重启nginx
    • sudo服务nginx重启
  8. 启动redis
    • sudo gitlab-ctl start redis

  • 这些说明对我来说比Eckster接受的答案更多,但我对Phusion Passenger步骤有点困惑.乘客在这做什么?我实际上没有安装它_seems_按预期工作? (3认同)