URL(nginx)에 포트 유지

URL(nginx)에 포트 유지

사용자가 해당 내용을 보고 파일을 다운로드할 수 있도록 일부 폴더를 표시하기 위해 nginx 서버를 실행하려고 합니다. 하지만 nginx가 docker 컨테이너 내부의 포트 80에서 수신 대기하지만 server.com:1080 외부에서는 수신 대기하기를 원합니다. 외부 경로가 설정되었습니다.

시작 페이지는 작동하지만 server.com:1080/folderurl을 통해 폴더에 액세스 하면 server.com:80/folder"이 주소에 연결할 수 없습니다" 페이지가 나타납니다. 저는 Nginx를 처음 접했기 때문에 server_name을 변경하고 Proxy_pass를 추가하는 등의 의미를 제대로 이해하지 못한 채 몇 가지 작업을 시도했지만 제대로 작동하지 못했습니다. 아마도 이 상황에 대한 특정 용어를 모르기 때문에 Google에서 일치하는 솔루션을 찾을 수 없을 수도 있습니다.

답변1

이것이 최선의 방법은 아닐 수도 있지만, 제가 보기에 한 가지 방법은 하위 디렉터리를 루트 디렉터리로 리디렉션하는 것입니다.

1-Nginx 구성 파일을 엽니다.

sudo vim /etc/nginx/nginx.conf

2- 다음 위치 블록을 추가합니다.

location ^~ /folder {
      rewrite ^/folder(.*)$ $1 last; 
}

환영 페이지가 제대로 작동한다고 말씀하셨기 때문에 이미 이 작업을 수행하셨을 거라 확신합니다. 그런데 호스트 포트를 컨테이너 포트에 올바르게 매핑하셨나요?

답변2

folder/링크가 기본적으로 작동한다는 것을 알았습니다 (포트를 변경하지 마세요). 추가해야 할 유일한 것은 403 Forbidden을 수정하는 것입니다. autoindex on이제 폴더, 하위 폴더가 표시되고 파일을 다운로드할 수 있습니다. 나는 그것으로 충분합니다. 따라서 다른 트릭은 필요하지 않습니다.

location / {
    # First attempt to serve request as file, then
    # as directory, then fall back to displaying a 404.
    try_files $uri $uri/ =404;
    autoindex on;
}

관련 정보