- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
当我尝试 git push -u origin master
到我的存储库,我得到 400 Bad Request
.我特意用 < > 编辑了一些信息。 最近从 gitlab-ee 中解绑了 nginx,并验证了通过网络浏览器访问 gitlab 位置的可访问性。我也试过将 git remote-url 设置为 https://gitlab.<mysite>.com/<user>/project.git
同样的事情发生了。
尝试 git push 时出错
remote: 400 Bad Request: missing required Host header
fatal: unable to access 'https://oauth2:<myawesometoken>.site.com/<user>/project.git/': The requested URL returned error: 400
nginx 配置
upstream gitlab {
server unix:/var/opt/gitlab/gitlab-rails/sockets/gitlab.socket;
}
upstream gitlab-workhorse {
server unix://var/opt/gitlab/gitlab-workhorse/socket fail_timeout=0;
#server unix:/home/git/gitlab/tmp/sockets/gitlab-workhorse.socketfail_timeout=0;
}
map $http_upgrade $connection_upgrade_gitlab {
default upgrade;
'' close;
}
log_format gitlab_access $remote_addr - $remote_user [$time_local]"$request_method $gitlab_filtere$
map $request_uri $gitlab_temp_request_uri_1 {
default $request_uri;
~(?i)^(?<start>.*)(?<temp>[\?&]private[\-_]token)=[^&]*(?<rest>.*)$"$start$temp=[FILTERED]$rest";
}
map $gitlab_temp_request_uri_1 $gitlab_temp_request_uri_2 {
default $gitlab_temp_request_uri_1;
~(?i)^(?<start>.*)(?<temp>[\?&]authenticity[\-_]token)=[^&]*(?<rest>.*)$"$start$temp=[FILTERED]$$
}
map $gitlab_temp_request_uri_2 $gitlab_filtered_request_uri {
default $gitlab_temp_request_uri_2;
~(?i)^(?<start>.*)(?<temp>[\?&]rss[\-_]token)=[^&]*(?<rest>.*)$"$start$temp=[FILTERED]$rest";
}
map $http_referer $gitlab_filtered_http_referer {
default $http_referer;
~^(?<temp>.*)\? $temp;
}
server {
server_name gitlab.<mysite>.com www.gitlab.<mysite>.com;
server_tokens off;
root /opt/gitlab/embedded/service/gitlab-rails/public;
real_ip_header X-Real-IP;
real_ip_recursive off;
access_log /var/log/nginx/gitlab_access.log;
error_log /var/log/nginx/gitlab_error.log;
passenger_ruby /opt/gitlab/embedded/bin/ruby;
passenger_env_var PATH "/opt/gitlab/bin:/opt/gitlab/embedded/bin:/usr/local/bin:/usr/bin:/bin";
passenger_user git;
passenger_group git;
passenger_enabled on;
passenger_min_instances 1;
location @gitlab-workhorse {
## https://github.com/gitlabhq/gitlabhq/issues/694
## Some requests take more than 30 seconds.
proxy_read_timeout 3600;
proxy_connect_timeout 300;
proxy_redirect off;
# Do not buffer Git HTTP responses
proxy_buffering off;
proxy_set_header Host $http_host_with_default;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://gitlab-workhorse;
## The following settings only work with NGINX 1.7.11 or newer
#
## Pass chunked request bodies to gitlab-workhorse as-is
# proxy_request_buffering off;
proxy_http_version 1.1;
}
location ~ ^/(assets)/ {
root /opt/gitlab/embedded/service/gitlab-rails/public;
gzip_static on; # to serve pre-gzipped version
expires max;
add_header Cache-Control public;
}
location / {
client_max_body_size 0;
gzip off;
proxy_read_timeout 300;
proxy_connect_timeout 300;
proxy_redirect off;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade_gitlab;
proxy_pass http://gitlab;
}
error_page 404 /404.html;
error_page 422 /422.html;
error_page 500 /500.html;
error_page 502 /502.html;
error_page 503 /503.html;
location ~ ^/(404|422|500|502|503)\.html$ {
# Location to the Gitlab's public directory,
# for Omnibus this would be: /opt/gitlab/embedded/service/gitlab-rails/public.
root /home/git/gitlab/public;
internal;
}
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/gitlab.<mysite>.com/fullchain.pem; # managed by Certb$
ssl_certificate_key /etc/letsencrypt/live/gitlab.<mysite>.com/privkey.pem; # managed by Cer$
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
server {
listen 80;
server_name www.gitlab.<mysite>.com gitlab.<mysite>.com;
return 301 https://$host$request_uri;
if ($host = www.gitlab.<mysite>.com) {
return 301 https://$host$request_uri;
} # managed by Certbot
if ($host = gitlab.<mysite>.com) {
return 301 https://$host$request_uri;
} # managed by Certbot
}
gitlab.rb 配置
external_url 'https://gitlab.<mysite>.com'
nginx['enable'] = false
web_server['external_users'] = ['www-data']
gitlab_rails['trusted_proxies'] = [ '<serverIp>/24']
最佳答案
所以我通过仔细查看 GitLab 文档弄明白了: https://docs.gitlab.com/omnibus/settings/nginx.html#vhost-server-block
我忽略了这两个设置。这是在主服务器 block 内。
# For protocol upgrades from HTTP/1.0 to HTTP/1.1 we need to provide Host header if its missing
if ($http_host = "") {
# use one of values defined in server_name
set $http_host_with_default "git.example.com";
}
if ($http_host != "") {
set $http_host_with_default $http_host;
}
此外,我删除了 client_max_body_size
来自 location / { ... }
并将其放入父范围。
最后,我添加了gitlab_rails['internal_api_url'] = 'https://gitlab.<mysite>.com'
到 gitlab.rb
配置文件。
现在一切正常。
关于混帐推送 : Missing required Host Header to host GitLab repository,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49469351/
我过去错误地分支,一个提交留在了另一个分支的开头: * 03431cb (HEAD -> bar) a2 | * d332e4d (foo) b2 | * 9b29ae3 b1 | * 4656a98
我是 git 的新用户,在广泛使用 svn 之后,我仍然有几件事情不清楚。 这是我的问题: 我在 xp dev 上有 repo:ssh://xp-dev.com/my_repo_name 它包含两个分
我有一个 Drupal 多站点并将其克隆到本地进行设置。我已经更改了一些用于数据库访问的设置文件。当我执行 GIT 状态时,我得到... Changes to be committed: (us
我们的团队有三名后端开发人员和两名前端开发人员。我们使用 Git 作为版本控制系统,使用 Jira 来跟踪问题和项目,使用 Stash 作为 Git 存储库。最后,我们使用 SourceTree(使用
我(主要)使用 git 从他们的源代码下载和编译各种项目,将我的源代码保存在 /usr/local/src 并将二进制文件安装在 /usr/local/bin. 在构建过程之后,通常使用 ./conf
这是我所做的: 创建文件夹testA 创建一个文件“a.txt”,内容为“a” Git 初始化到文件夹 testA git 添加。 git commit -a -m "第一个" 将文件的“a.txt”
我现在有一个巨大的、臃肿的 Git 存储库,它占用了 GitHub 上的大量磁盘空间,我想节食。我需要丢弃在项目历史早期做出的古老提交,这些提交基本上与项目当前的发展方向无关。 我是 - 并且永远是
我的同事不久前做了一个改变——引入了一个新功能——并且(成功地)提交给了 Git。不过,现在该功能已丢失。 使用 git log --reverse 我设法找到了该函数仍在代码中的最后一次提交 (48
在我部署了 laravel 应用程序的 digitalocean droplet 上一切正常,今天当我尝试执行“git pull”时,我刚刚收到: root@ubuntu-s-1vcpu-2gb-ny
我们有一个共同的 LDAP 帐户/用户。我们计划使用此用户为我们的团队配置 Jenkins。 我使用我的登录名登录到机器/虚拟机并安装了 Jenkins。 然后我只从我的帐户生成 ssh key ,但
我目前正在尝试关注 Pro Git 书中提到的基于小型项目的工作组:http://progit.org/book/ch5-2.html 所以,这是我的设置: [Live Website Folder]
我想知道我的分支是否与远程同步: git pull -v From ... = [up to date] master -> origin/master = [up to dat
我刚刚创建了名为 website 的目录。这有几个图像、index.html 页面等。我运行了:git --bare init --shared=0777 现在,它成功地创建了一个空的共享仓库。 我现
我在我的 cmd 中运行 git 命令。它在前一段时间工作,但现在每当我使用 git 命令时,都会发生以下错误 fatal: unable to access 'github.com/user_nam
我在我的桌面上创建了一个存储库并推送到 github,然后将该存储库克隆到我的笔记本电脑上进行开发,然后提交更改并推送到 github。现在回到我的桌面,我尝试“git pull”来获取我所做的所有更
我有一个带 HTTPS 访问权限的远程存储库。 git status 只列出一个条目:master git remote -v 列出同一地址的两个条目:一个用于获取,一个用于推送 但是当我执行 git
我有应用服务器,我使用 Chef + 一些临时 bash 脚本一起引导它们。问题是,当我想在这些应用程序服务器之一上运行更新时,我得到: 19:00:28: *** Please tell me wh
我正在尝试在服务器上安装 git,但在尝试执行第一次推送时遇到了一些问题。我在服务器上成功安装了 git,在本地和服务器上创建了存储库,但是当我尝试进行第一次推送时,我收到了这条消息: stdin:
每当我从我的 Remote 中 pull 出时,我都会收到以下关于压缩的错误。当我运行手动压缩时,我得到了相同的结果: $ git gc error: Could not read 381378312
我的 git 存储库发生了一件奇怪的事情。当我尝试在 tortoisegit 窗口中提交某些内容时,我收到了来自项目的所有文件。我无法还原它们,当我从服务器 pull 出时收到 fatal: No s
我是一名优秀的程序员,十分优秀!