【问题标题】:Why is the Gitlab instance accessible from multiple subdomains?为什么可以从多个子域访问 Gitlab 实例?
【发布时间】:2015-09-22 07:43:38
【问题描述】:

我在 Digital Ocean 上有一个 ubuntu 14.04 服务器,我在其中运行一个 Gitlab 实例,可以从 repo.mydomain.com 访问 我想设置一个toran 实例,它必须可以从toran.mydomain.com 访问

但是,我注意到对于指向服务器的每个子域,都会显示 Gitlab 登录页面。因此,当我浏览 toran.mydomain.com 甚至 test.mydomain.com 时,它会显示 Gitlab 页面。我该如何解决这个问题?

Gitlab 配置

我已经修改了一些 gitlab 原始配置,一个重要的修改是使用我的“自己的”nginx 实例而不是构建实例,遵循this guide

我的 gitlab 配置(我使用了 dummy 值)如下:

external_url 'http://repo.mydomain.com'

 gitlab_rails['gitlab_email_from'] = 'emailhere'
 gitlab_rails['gitlab_email_display_name'] = 'Gitlab'

 gitlab_rails['db_adapter'] = "postgresql"
 gitlab_rails['db_encoding'] = "unicode"
 gitlab_rails['db_database'] = "thdbname"
# gitlab_rails['db_pool'] = 10
 gitlab_rails['db_username'] = "theuser"
 gitlab_rails['db_password'] = "thepass"
 gitlab_rails['db_host'] = "localhost"
 gitlab_rails['db_port'] = 1337

 gitlab_rails['smtp_enable'] = true
 gitlab_rails['smtp_address'] = "smtp.mandrillapp.com"
 gitlab_rails['smtp_port'] = 587
 gitlab_rails['smtp_user_name'] = "emailhere"
 gitlab_rails['smtp_password'] = "ojojowij"
 gitlab_rails['smtp_domain'] = "domainhere"
 gitlab_rails['smtp_authentication'] = "login"
 gitlab_rails['smtp_enable_starttls_auto'] = true

 postgresql['enable'] = false

 web_server['external_users'] = ['www-data']

 nginx['enable'] = false

gitlab的nginx配置如下:

server {
  listen *:80;
  server_name repo.mydomain.com;
  server_tokens off;
  root /opt/gitlab/embedded/service/gitlab-rails/public;

  client_max_body_size 250m;

  access_log  /var/log/gitlab/nginx/gitlab_access.log;
  error_log   /var/log/gitlab/nginx/gitlab_error.log error;

  # Ensure Passenger uses the bundled Ruby version
  passenger_ruby /opt/gitlab/embedded/bin/ruby;

  # Correct the $PATH variable to included packaged executables
  passenger_env_var PATH "/opt/gitlab/bin:/opt/gitlab/embedded/bin:/usr/local/bin:/usr/bin:/bin";

  # Make sure Passenger runs as the correct user and group to
  # prevent permission issues
  passenger_user git;
  passenger_group git;

  # Enable Passenger & keep at least one instance running at all times
  passenger_enabled on;
  passenger_min_instances 1;

  error_page 502 /502.html;
}

Toran 配置

 server {
    #listen 8000;
    listen *:8000;
    server_name toran.mydomain.com;
    root /var/www/toran/web;
    #index index.html index.htm;

    access_log  /var/log/toran/nginx/toran_access.log;
    error_log   /var/log/toran/nginx/toran_error.log error;

    location / {
        try_files $uri /app.php$is_args$args;
    }
 }

【问题讨论】:

    标签: git nginx gitlab toran-proxy


    【解决方案1】:

    让 Toran 服务器阻塞监听 80 端口:

    server {
      listen 80;
      ...
    }
    

    【讨论】:

      【解决方案2】:

      它不是 Gitlab,而是更多与 Nginx 相关的。请看这个答案:Why is nginx responding to any domain name?

      【讨论】:

        猜你喜欢
        • 2017-04-07
        • 2014-03-20
        • 1970-01-01
        • 2022-09-27
        • 2015-12-01
        • 1970-01-01
        • 1970-01-01
        • 2018-01-05
        • 2013-04-12
        相关资源
        最近更新 更多