У меня есть 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
файла)
Чтоне так с моей настройкой?Спасибо.