[Java, Spring] Linux 파일 서버 경로 연결하기
Linux Ubuntu 환경에 프론트와 백엔드 서버가 각각 배포되어있는 상태입니다.
각 회원마다 등록한 본인의 프로필 이미지가 서버 특정 폴더에 저장이 되어있는 상태이고, img 태그의 src 경로를 통해 서버에 업로드 되어있는 이미지를 가져오려합니다 !
⚙️ 프로젝트 환경
Spring Boot : 2.7.14
Node : 20.6.0
Linux : Ubuntu 22.04
🎇 img태그 설정
아래와 같이 /icon-image/를 기본 경로로 지정해 놓고 이후 회원의 이미지 파일명을 받아 서버 폴더에서 불러오려고합니다.
만약 파일이 없을 경우에는 public 폴더에 저장해 놓은 기본 이미지를 띄워주겠습니다 !
src에 설정해 놓은 경로로 이미지를 서버로 요청합니다.
src의 서버의 실제 파일의 위치로 설정해 놓는 것은 당연히 보안에 취약하기 때문에 위에서 설명한 것과 같이 /icon-image를 실제 파일이 업로드된 경로로 바인딩을 하려고합니다. 그럼 /icon-image 를 제가 희망하는 경로로 변경해줘야겠죠 !?
🧭 Spring Boot 설정
WebConfig에 아래와 같이 설정 내용을 추가해 줍니다 !
경로 앞 file:의 의미는 Spring에서는 다양한 리소스 타입을 처리할 수 있는데, file:을 사용하면 해당 경로가 로컬 파일 시스템에 있는 파일을 참조한다는 것을 의미합니다.
📄 nginx 설정
Spring 설정까지만 하면 적상적으로 작동할줄 알았으나.....nginx에도 /icon-image에 대한 설정을 추가해줘야합니다 !
nginx 설정까지 해줬는데 갑자기 에러 발생 !!!!
에러 발생 이유는 http로 접근했기 때문....하하 SSL이 적용된 사이트는 https로 경로를 바꿔줘야합니다 !!
서버에 저장해놨던 마루 사진이 잘 불러오는 것까지 확인하고 포스팅을 마무리하겠습니다~~