Купите свои ноутбуки и машины от кого-то как Dell, и возможности - Вы, может выполнить стандартную сборку, улучшая поддержку, безопасность и время простоя, как будто что-то идет не так, как надо мудрое программным обеспечением, можно восстановить машину приблизительно через один час, не день.
Если кто-либо вырыт в дыру, я сделал, вот то, как я откопал:
location /hg {
fastcgi_pass unix:/var/run/hg-fastcgi.socket;
include fastcgi_params;
if ($request_uri ~ ^/hg([^?#]*)) {
set $rewritten_uri $1;
}
rewrite ^/hg$ /hg/ redirect;
fastcgi_param SCRIPT_NAME "/hg";
fastcgi_param PATH_INFO $rewritten_uri;
# for authentication
fastcgi_param AUTH_USER $remote_user;
fastcgi_param REMOTE_USER $remote_user;
fastcgi_intercept_errors on;
error_page 401 = @hgauth;
}
location @hgauth {
fastcgi_pass unix:/var/run/hg-fastcgi.socket;
include fastcgi_params;
if ($request_uri ~ ^/hg([^?#]*)) {
set $rewritten_uri $1;
}
auth_basic "hg secured repos";
auth_basic_user_file /var/trac.htpasswd;
fastcgi_param SCRIPT_NAME "/hg";
fastcgi_param PATH_INFO $rewritten_uri;
# for authentication
fastcgi_param AUTH_USER $remote_user;
fastcgi_param REMOTE_USER $remote_user;
}
Важная часть fastcgi_intercept_errors on;
, error_page 401 = @hgauth;
, и использование location @hgauth {
. Я не уверен, что возможно сделать этот любой другой путь. Сообщите мне, помог ли этот ответ!
Это было ошибкой в nginx, который был зафиксирован в 0.8.48.
BTW, необходимо использовать fastcgi_split_path_info
как if
не становится инициированным правильно с limit_except
.
Таким образом в конце что-то как этот должно работать на Вас:
location /hg {
fastcgi_pass unix:/var/run/hg-fastcgi.socket;
include fastcgi_params;
limit_except GET HEAD {
auth_basic "hg secured repos";
auth_basic_user_file /var/trac.htpasswd;
}
fastcgi_split_path_info ^(/hg)(.*)$;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
# for authentication
fastcgi_param AUTH_USER $remote_user;
fastcgi_param REMOTE_USER $remote_user;
}