Nginx 不提供子域名服务

Nginx 不提供子域名服务

正如标题所述,我在让 Nginx 为子域提供服务时遇到了麻烦。它不断地为主域提供服务。无论我请求 www.example.com 还是 git.example.com,它都会继续为 www.example.com 提供服务(这是唯一受密码保护的 conf)。所有请求都写入 access.log 中,而子域 access.log 中没有任何内容。

以下是我直接放在 sites-enabled 文件夹中的配置文件:

主要的

server {
    listen 80;

    server_name www.example.com;

    root /var/www/html;
    index index.nginx-debian.html;

    location / {
            auth_basic "Login";
            auth_basic_user_file /var/www/.htpasswd;
            try_files $uri $uri/ =404;
    }

    location ~ /\. {
            deny all;
    }
}

GitLab(来源 :https://gitlab.com/gitlab-org/gitlab-recipes/blob/master/web-server/nginx/gitlab-omnibus-nginx.conf

upstream gitlab-workhorse {
        server unix:/var/opt/gitlab/gitlab-workhorse/socket;
}

server {
    listen 0.0.0.0:8080;
    listen [::]:8080;
    server_name git.example.com;
    server_tokens off;
    root /opt/gitlab/embedded/service/gitlab-rails/public;
    access_log  /var/log/nginx/gitlab_access.log;
    error_log   /var/log/nginx/gitlab_error.log;
    location / {
            client_max_body_size 0;
            gzip off;
            proxy_read_timeout      300;
            proxy_connect_timeout   300;
            proxy_redirect          off;
            proxy_http_version 1.1;
            proxy_set_header    Host                $http_host;
            proxy_set_header    X-Real-IP           $remote_addr;
            proxy_set_header    X-Forwarded-For     $proxy_add_x_forwarded_$
            proxy_set_header    X-Forwarded-Proto   $scheme;
            proxy_pass http://gitlab-workhorse;
    }
}

我目前所做的:

  • 删除主要内容后,Nginx 不再提供任何服务;
  • 删除 gitlab,然后 Nginx 同时为 www 和 gitlab 提供 www 服务;
  • 全新安装的 Nginx 并未改变任何内容。

我刚刚花了 4 个小时解决这个问题,但无法自己解决或使用互联网解决。我接受任何想法!

答案1

您的主域是唯一在端口 80 上监听的 vhost。将您的 git vhost 也切换到端口 80,它就应该可以工作了。

相关内容