나는 nginx 설정에 익숙하지 않습니다. 꽤 기본적인 문제로 어려움을 겪고 있습니다. / doc (index.html, 일부 이미지 등)에서 정적 파일을 호스팅하고 싶습니다. 파일은 / sites / mysite / proj / doc /라는 디렉토리에 있습니다.
문제는 아래의 nginx 설정에서 nginx가 “/ sites / mysite / proj / doc / doc”라는 디렉토리를 찾으려고한다는 것입니다. 아마도 루트를 / sites / mysite / proj /로 설정하면이 문제를 해결할 수 있지만 proj / 디렉토리에 다른 (정적이 아닌) 자산을 노출시키고 싶지는 않습니다. 그리고 여러 가지 이유로, 나는 doc / 디렉토리를 원래 위치로 옮길 수 없습니다.
이 상황을 해결하기 위해 다시 쓰기 규칙을 사용하는 방법이 있다고 생각하지만 모든 부분을 실제로 이해하지 못하므로 규칙을 공식화하는 데 어려움이 있습니다.
rewrite ^/doc/(.*)$ /$1 permanent;
또한 / sites / mysite / htdocs / static / 디렉토리에서 파일을 호스팅하는 실제 예제도 포함했습니다.
> vim locations.conf
location /static {
root /sites/mysite/htdocs/;
access_log off;
autoindex on;
}
location /doc {
root /sites/mysite/proj/doc/;
access_log on;
autoindex on;
}
2011/11/19 23:49:00 [error] 2314#0: *42 open() "/sites/mysite/proj/doc/doc" failed (2: No such file or directory), client: 100.100.100.100, server: , request: "GET /doc HTTP/1.1", host: "myhost.com"
이 정적 콘텐츠를 제공하는 방법에 대한 아이디어가 있습니까?
답변
다음과 같이 별칭을 사용할 수 있습니다.
location /doc {
alias /sites/mysite/proj/doc/;
}