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