CS/Linux

[Linux] NFS 서버 및 클라이언트 구성 (이미지 파일 업로드)

셰욘 2025. 3. 4. 16:35
728x90

NFS란?

네트워크를 통해 원격 파일 시스템을 마치 로컬 디렉토리처럼 사용할 수 있도록 하는 프로토콜
주로 리눅스/유닉스 시스템에서 많이 사용된다.

 


프론트엔드 설정 (서버)

NFS 패키지 설치

apt install nfs-kernel-server

 

 

이미지 파일을 업로드할 디렉토리를 만들고, 권한을 777로 설정해줘서 모두 접근할 수 있고 읽기 쓰기를 할 수 있게 설정해준다.

mkdir images
chmod 777 /var/www/html/images

 



설정 파일에서 접근 권한 설정

vi /etc/exports

 

NFS 서버에서 공유할 디렉토리를 정의하는 설정이다.

NFS를 통해 특정 네트워크(10.10.10.0/24)에 /var/www/html/images 디렉토리를 공유하는 설정

/var/www/html/images [네트워크 대역]/[서브넷마스크](rw,root_squash)

 

 

 


백엔드 설정 (클라이언트)

NFS 패키지 설치 & mount 설정

apt install -y nfs-common

 

 

NFS 서버에 있는 /var/www/html/images 디렉토리를 클라이언트의 특정 폴더에 연결하여 로컬 디렉토리처럼 사용할 수 있도록 해준다.

mount -t nfs [서버 IP 주소]:/var/www/html/images [아무폴더 경로]

// mount -t nfs 10.10.10.30:/var/www/html/images /mnt

 

 


테스트

클라이언트 컴퓨터에서 a 라는 파일을 생성해준다.

 

 

 

서버 컴퓨터에서 확인하면 a 파일이 들어와있는 걸 확인할 수 있다.

 

 


스프링 프로젝트 배포해서 연결하기

 

Gradle - bootJar 로 jar 파일을 만들어준다.

 

 

해당 jar 파일을 클라이언트 컴퓨터로 옮기기

 

 

 

 

 

백엔드 서버 (클라이언트)에 환경변수를 설정해준다.

 

환경변수에 앞에 전부 export 붙이기

=> 리눅스에서는 환경변수를 설정할 때 앞에 export를 붙여야 한다. 

export DB_URL=jdbc:mariadb://[DB 서버 IP 주소]:3306/[DB 이름];
export DB_USER=[DB 유저];
export DB_PASSWORD=[DB 비밀번호];
export JWT_EXPIRED=30000;
export JWT_SECRET=[JWT secret];
export UPLOAD_PATH=/mnt

 

 

 

서버에 옮긴 후 아래 명령어로 실행해준다.

java -jar [jar 파일 이름]

 

 

 

 

 

백엔드 서버 IP의 8080 포트에 요청을 보내면 요청이 제대로 가지는 걸 확인할 수 있다.

 

 

요청이 가지면 프론트엔드 서버에 파일이 잘 저장된다.

728x90