매우 이상한 문제가 있습니다. 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에서 디버그 탭을 열고 "캐시 비활성화"를 활성화합니다.
- 크롬 대신 firefox-bin을 사용하세요.
- 캐시를 수동으로 삭제하세요.
- 크롬을 완전히 다시 시작하세요.
- nginx와 fcgiwrap을 다시 시작하십시오.
- 새 저장소가 추가되고 내용이 변경되었습니다.
도움이 안돼!
Chrome과 Firefox에서는 항상 잘못된 URL이 표시되지만 링크나 컬에서는 그렇지 않습니다.