Ubuntu 14.04 git https, обслуживающий проблему nginx - PullRequest
0 голосов
/ 15 декабря 2018

У меня есть https://git.example.com/ сайт для обслуживания статических файлов, работающий на Ubuntu 14.04 LTS.

Конфигурация /etc/nginx/sites-enabled/git.example.com выглядит следующим образом:

location / {
        # First attempt to serve request as file, then
        # as directory, then fall back to displaying a 404.
        try_files $uri $uri/ =404;
}
location ~ (/.*) {
        client_max_body_size 0; # Git pushes can be massive, just to make sure nginx doesn't suddenly cut the connection add this.
        auth_basic "Git Login"; # Whatever text will do.
        auth_basic_user_file "/var/www/git_htpasswd";
        include /etc/nginx/fastcgi_params; # Include the default fastcgi configs
        fastcgi_param SCRIPT_FILENAME /usr/lib/git-core/git-http-backend; # Tells fastcgi to pass the request to the git http backend executable
        fastcgi_param GIT_HTTP_EXPORT_ALL "";
        fastcgi_param GIT_PROJECT_ROOT /var/www/repo;
        fastcgi_param REMOTE_USER $remote_user;
        fastcgi_param PATH_INFO $1; # Takes the capture group from our location directive and gives git that.
        fastcgi_pass  unix:/var/run/fcgiwrap.socket;
}

(Файл конфигурации сайтасвязан с sites-enabled.)

Здесь есть сокет Unix var/run/fcgiwrap.socket.Есть программа /usr/lib/git-core/git-http-backend.

Я получаю доступ к репо по следующему URL:

https://git.example.com/info.git

git remote show orig

ОШИБКА:

fatal: unable to access 'https://git.example.com/info.git/': The requested URL returned error: 502

И на сайте сервера в /var/log/nginx:

cat error.log

2018/12/15 23:38:15 [error] 26794#0: *8 no user/password was provided for basic authentication, client: 223.167.127.110, server: git.example.com, request: "GET /info.git/info/refs?service=git-upload-pack HTTP/1.1", host: "git.example.com"
2018/12/15 23:38:16 [error] 26794#0: *8 FastCGI sent in stderr: "Cannot execute script (/var/www/repo/info.git/info/refs)" while reading response header from upstream, client: 223.167.xxx.xxx, server: git.example.com, request: "GET /info.git/info/refs?service=git-upload-pack HTTP/1.1", upstream: "fastcgi://unix:/var/run/fcgiwrap.socket:", host: "git.example.com"

Похоже, /usr/lib/git-core/git-http-backend вообще не запускается.Я попытался заменить эту программу тестовым сценарием:

#!/bin/sh

echo "$@" >/tmp/backend.log
set >> /tmp/backend.log

и выполнить команду git remote show origin со стороны клиента, ничего не появилось в /tmp (нет backend.log файла)

Чтоне так с моей настройкой?Спасибо.

...