2014-04-24 4 views
0

가상 디렉터리를 통해 정적 자산을 전달하려고하지만 다음 두 가지 문제가 있습니다.nginx 구성에서 정적 자산을 전달하지 않습니다.

  1. 내가 Nginx와는
  2. 시스템을 파일 이름에 후행 슬래시를 추가하고 싶어 URL로 리디렉션거야 내가 잘못하고의 nginx의 결과로 하나의 파일 대신 디렉토리 목록을 원하는 생각 맡은 일. 하는 error.log 파일에서

예 : 내 config 파일에서

2014/04/24 11:21:37 [error] 6808#6952: *15 directory index of "E:/fileserver/intranet/" is forbidden, client: 192.168.110.79, server: intraTest, request: "GET /intraStatic/employees/0C0C3E08-5056-A300-0E2C2FF5D437C6A3.png/ HTTP/1.1", host: "intraTest" 

코드 조각을

: 로그 별칭에 언급 된 경로를 포함

location ~ /intraStatic/ { 
    autoindex off; 
    alias e:/fileserver/intranet/; 
    break; 
} 

때문에 내가 알고있는 위치 블록 무시하지는 않지만, 파일 시스템 사용 권한이 매우 좋고이고 파일이 존재하고 아무 것도 손상되지 않았더라도 거기에있는 파일에 액세스 할 수 없습니다.

Google은 각자가 이전의 것보다 훨씬 쓸모없는 결과로 반응하기 때문에 나는 여기있는 누군가가 문제에 대해 밝힐 수 있기를 바랄뿐입니다.

답장을 보내 주셔서 감사합니다. ngx_http_core_module에서

+0

전체 구성을 제공하십시오. –

+0

나는이 서버의 설정을 제거했다. 문제는 여전히 지속된다. http://pastebin.com/AscuzPW4 –

+0

URL에 후행 슬래시로 리다이렉트 (redirect) 될 수있는 것은 아무것도 없다. 아마도 주석 처리 된 블록의 어딘가에있을 것입니다. –

답변

0

감사합니다 여러분.

주석 처리 된 응용 프로그램 중 하나 뒤에있는 Tomcat 서버를 통과 할 정도로 거의 좌절했을 때, 위의 제안이 내 경우에는 작동하지 않는 것 같아서 더 강력한 솔루션을 사용하게되었습니다.

은 결국 나는 파일 시스템 폴더 이름을 변경하고 다음과 같은 경로로 갔다 :

location ~ /intraStatic/ { 
    autoindex off; 
    root e:/fileserver/; 
    break; 
} 

감사 어쨌든 내가 해결책을 찾을 수 있도록 시간을내어.

0

:

위치가 응답 한 다음, 슬래시 문자로 종료되며, 요청 proxy_pass, fastcgi_pass, scgi_pass, uwsgi_pass 또는 memcached_pass 중 하나에 의해 처리되는 접두사 문자열에 의해 정의되면 이 문자열과 같은 URI가 포함 된 요청에 후행 슬래시가 없으면 코드 301이 포함 된 영구 리디렉션이 요청 된 URI에 슬래시가 추가되어 반환됩니다. 이 원하는되지 않은 경우, URI 및 위치의 정확한 일치는 다음과 같이 정의 할 수 있습니다 :

location /user/ { 
    proxy_pass http://user.example.com; 
} 

location = /user { 
    proxy_pass http://login.example.com; 
} 

그래서 시도 : 귀하의 답변에 대한

location ~ /intraStatic { 
+0

이 위치는 접두어 문자열이 아니라 regexp에 의해 정의됩니다. –

+0

나는 그것을 간과했다. 위에서 정의 된 후행 슬래시 동작은 여전히 ​​적용되지 않습니까? – pete

+0

그렇게해서는 안됩니다. 하지만 저자는 완전한 구성을 제공하지 않으므로 내가 말할 수있는 것은 더 이상 없습니다. –

관련 문제