본인은 Synology NAS 가 없어서 TrueNAS 를 임의 하드웨어 내 구축하여 사용 중이다. 하지만 본인 자택 내 서버 구성에 리버스 프록시 (역프록시) 서버가 포함되어있어 해당 연결로 인한 TrueNAS 내 FileBrowser 이용 시, 업로드 및 다운로드 진행 데이터가 0B 로 확인되는 상태가 확인되었다.
떄문에 문제해결을 위해 로컬 네트워크 내 리버스 프록시 설정 확인 및 FileBrowser 설정을 위한 TrueNAS 내 콘솔에서 설정 값을 뒤져보았으나 딱히 해결할 수 없었는데, 초반에는 FileBrowser 문제라고 생각해서 시도하였던 것이였으나 이후 리버스 프록시 세팅, 그러니까 로컬 네트워크 세팅으로 무언가 잘못되어 발생되는 문제라고 판단되었다.
그러던 중 Perplexity 를 통해 로컬 네트워크 정보를 설명하고 해당 문제에 논의해본 결과, 해당 문제는 리버스 프록시 설정문제로 확인되었다.
전문 -
본인이 사용하는 TrueNAS 에서 서버 내 콘솔을 이용하여 FileBrowser 을 설치한 상태야. 해당 서버는 동일 로컬 내 NGINX를 이용한 리버스 프록시를 이용해서 도메인과 연결된 상태이며, FileBrowser 서버는 - 포트를 내부에서 오픈하여 리버스 프록시로 외부와 연결된 상태인데, 해당 서버에 임의 파일 업로드 진행 시, 0B 로 파일이 업로드가 되는 상태야. 해당 문제를 해결하기 위해 내가 해야하는 일을 알려줘. 만일 NGINX 설정 파일을 수정해야하는 경우, 어디를 수정해야하는지도 알려줘야해. |
전문 답변 -
TrueNAS에서 FileBrowser를 사용하면서 NGINX 리버스 프록시를 통해 외부와 연결한 상태에서 파일 업로드 시 0B로 업로드되는 문제를 해결하기 위해 다음 단계를 수행해야 합니다: 1. NGINX 설정 수정: NGINX 설정 파일을 열어 FileBrowser에 대한 location 블록을 찾아 다음 설정을 추가하거나 수정해야 합니다: ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ location /filebrowser { proxy_pass http://localhost:[PortNumber]; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; client_max_body_size 0; proxy_request_buffering off; } ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ 여기서 중요한 설정은 다음과 같습니다: client_max_body_size 0;: 클라이언트 요청 본문의 크기 제한을 없앱니다. proxy_request_buffering off;: 요청 버퍼링을 비활성화하여 대용량 파일 업로드를 허용합니다. 2. NGINX 설정 파일 위치: TrueNAS에서 NGINX 설정 파일의 위치는 일반적으로 다음과 같습니다: /usr/local/etc/nginx/nginx.conf또는 개별 사이트 설정 파일이 있는 경우: /usr/local/etc/nginx/conf.d/your_site.conf 3. NGINX 재시작: 설정 변경 후 NGINX를 재시작하여 변경사항을 적용합니다: ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ service nginx restart ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ 4. FileBrowser 설정 확인: FileBrowser의 설정에서 최대 업로드 크기가 제한되어 있지 않은지 확인합니다. FileBrowser의 설정 파일을 열어 다음 항목을 확인하고 필요하다면 수정합니다: ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ { "port": [PortNumber] , "baseURL": "", "address": "", "log": "stdout", "database": "/path/to/database.db", "root": "/path/to/root", "signup": false, "createUserDir": false, "userHomeBasePath": "", "auth": { "method": "noauth" } } ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ 이러한 변경을 적용한 후에도 문제가 지속된다면, TrueNAS와 FileBrowser의 로그를 확인하여 추가적인 오류 메시지나 문제의 원인을 파악해야 합니다 5. FileBrowser 재시작: 설정 변경 후 FileBrowser 서비스를 재시작합니다. |
필자 본인의 NGINX 서버 내 특정 서버 파일에 대한 설정 파일은 '/etc/nginx/conf.d/[Server-ConfigFile].conf' 에 위치해 있어 해당 파일에 대한 코드를 수정해주었다.
참고: https://anythingis.tistory.com/175
해당 코드 -
server {
listen 443;
server_name [SubDomain].kaiht.kr;
ssl_certificate [fullchain.pem File Location]/fullchain.pem;
ssl_certificate_key [privkey.pem File Location]/privkey.pem;
# ----- Auth Server -----
location / {
proxy_pass http://[Server Local IP]:[Server PortNumber]/;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# ----- Create Options -----
client_max_body_size 0;
proxy_request_buffering off;
}
}
본 코드 내 입력된 ' [문자열] ' 항목의 경우, 각 환경에 맞게 커스텀하여 사용해야한다.
필자 본인의 경우, 리버스 프록시 내 SSL 을 적용하였기 떄문에 해당 옵션에 대한 값이 설정되어있다. (뭐 리버스 프록시를 쓴다 가정하에 대부분 설정을 했겠지만...)
해당 문제는 중간에서 받아주는 프록시 서버에서 전달해주는 요청 또는 응답에 대한 크기가 설정되지 않아 발생하는 것으로 보이며, 그렇기에 본 설정을 해주면문제는 자연스럽게 해결된다.
'Intra Set > TrueNAS' 카테고리의 다른 글
TrueNAS FileBrowser Settings (3) | 2024.12.30 |
---|