非常に奇妙な問題があります。 nginxサーバーを設定しました。
server {
listen unix:/home/ingo/repositories/run/gitweb.nginx;
server_name _;
access_log /home/ingo/repositories/log/proxy.log main;
error_log /home/ingo/repositories/log/proxy.log debug;
# static repo files for cloning over https
location ~ ^.*\.git/objects/([0-9a-f]+/[0-9a-f]+|pack/pack-[0-9a-f]+.(pack|idx))$ {
root /home/ingo/repositories;
}
# requests that need to go to git-http-backend
location ~ ^.*\.git/(HEAD|info/refs|objects/info/.*|git-(upload|receive)-pack)$ {
root /home/ingo/repositories;
fastcgi_param SCRIPT_FILENAME /home/ingo/repositories/git-http-backend;
fastcgi_param PATH_INFO $uri;
fastcgi_param GIT_PROJECT_ROOT /home/ingo/repositories;
fastcgi_param GIT_HTTP_EXPORT_ALL "";
fastcgi_pass unix:/home/ingo/repositories/run/gitweb.sock;
include fastcgi_params;
}
location / {
root /home/ingo/repositories/;
gzip off;
fastcgi_param PATH_INFO $uri;
fastcgi_param SCRIPT_FILENAME /home/ingo/repositories/gitweb.cgi;
fastcgi_param GITWEB_CONFIG /home/ingo/repositories/etc/gitweb.conf;
fastcgi_pass unix:/home/ingo/repositories/run/gitweb.sock;
include fastcgi_params;
}
}
そして、デフォルトの仮想ホストのサブパスを使用します(実際には仮想ホスト名が好きではありません)。
location = /repos { rewrite ^ /repos/ redirect; }
location /repos/ {
access_log /home/ingo/repositories/log/proxy.log main;
error_log /home/ingo/repositories/log/proxy.log debug;
location /repos/ {
proxy_pass http://unix:/home/ingo/repositories/run/gitweb.nginx:/;
sub_filter 'href="' href="/repos/;
sub_filter_once off;
proxy_cache off;
}
location /repos/static/ {
alias /usr/share/gitweb/static/;
}
}
これにより、すべての href="が href="/repos/ に置き換えられます。
これは実際にリンクとカールで動作します。ただし、FirefoxまたはChromeを使用すると、次のメッセージが表示されます。
<link rel="stylesheet" type="text/css" href="static/gitweb.css"/>
変えるcurl -o- 'http://localhost/repos/'|grep css
<link rel="stylesheet" type="text/css" href="/repos/static/gitweb.css"/>
。キャッシュを迂回するために、
- Chromeでデバッグタブを開き、「キャッシュを無効にする」を有効にします。
- Chromeの代わりにfirefox-binを使用してください。
- キャッシュを手動で削除してください。
- Chromeを完全に再起動してください。
- nginxとfcgiwrapを再起動してください。
- 新しいリポジトリが追加され、内容が変更されました。
役に立たない!
ChromeとFirefoxでは常に間違ったURLが表示されますが、リンクやカールではそうではありません。