실습 개요
NFS 서버와 WEB 연동
NFS란
- Network File System
- 리눅스/유닉스에서 사용하는 표준 프로토콜
- 네트워크로 파일/디렉토리 공유 시 사용
- NAS 방식에 해당
- 보안 방식 구성을 위해 kerberos 서비스와 연동
구성 순서
서버
1. 패키지 설치
2. 디렉토리 준비
3. 설정
1) 디렉토리 공유 설정
2) 서비스 설정
4. 서비스 활성화
5. 방화벽 설정
클라이언트
1. 패키지 설치
2. 마운트
NFS 서버 구성 (서버)
패키지 설치 확인
yum list nfs-utils
nfs-utils.x86_64 1:1.3.0-0.68.el7.1 @updates
Available Packages
nfs-utils.x86_64 1:1.3.0-0.68.el7.2 updates
디렉토리 생성
[root@nfs ~]# mkdir /contents
[root@nfs ~]# ls -ld /contents/
drwxr-xr-x. 2 root root 6 May 25 14:32 /contents/
설정
nfs 설정 파일 확인
[root@nfs ~]# ls -l /etc/sysconfig/nfs
-rw-r--r--. 1 root root 1679 Jul 22 2021 /etc/sysconfig/nfs
[root@nfs ~]# ls -l /etc/nfs.conf
-rw-r--r--. 1 root root 1023 Jul 22 2021 /etc/nfs.conf
디렉토리 공유 설정
vi /etc/exports
/contents *(rw,sync,sec=sys)
# * : 접근을 허용할 대상, 모두
# 10.0.2.0/24: 특정 네트워크 대역
# 10.0.2.40/24: 특정 시스템 지정
# rw: 읽기-쓰기 허용
# sync: 빠른 동기화
# sec: 인증 방식: sys(기본 값, 생략 가능)
# 설정 변경 시 항상 실행
exportfs -r
서비스 활성화
systemctl enable --now nfs-server
방화벽 설정
firewall-cmd --add-service=nfs
firewall-cmd --add-service=nfs --permanent
WEB 서버 (클라이언트)
마운트 설정
/etc/fstab 설정 파일 수정
vi /etc/fstab
10.0.2.40:/contents /var/www/html nfs rw,sync,sec=sys 0 0
# NFS 서버의 IP:공유 디렉토리 경로
# /var/www/html: 마운트포인트
마운트 확인
mount | grep /var/www/html
10.0.2.40:/contents on /var/www/html type nfs4 (rw,relatime,sync,vers=4.1,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.0.2.30,local_lock=none,addr=10.0.2.40)
# nfs 서버에서 작업
echo "test nfs with web" > /contents/index.html
# web 서버에서 확인
cat /var/www/html/index.html
test nfs with web
=> 여기까지 NFS 서버와 연결은 성공
=> 그러나, httpd와 nfs 연동은 안됨 (SELinux 설정이 원인)
웹 브라우저 접속 시 접근 불가 에러: SELinux 설정 원인
## 클라이언트에서 확인: 컨텍스트 값이 변경되지 않아서 연동에 실패함
# 컨텍스트 확인(nfs_t)
ls -lZd /var/www/html
drwxr-xr-x. root root system_u:object_r:nfs_t:s0 /var/www/html
# SELinux 기본 값 적용
semanage fcontext -a -t httpd_sys_content_t '/var/www/html(/.*)?'
restorecon -Rv /var/www/html
# 값이 변경되지 않음(nfs_t)
# 4.1 버전은 클라이언트에서 마운트해서 사용할 경우 변경 불가
# => 4.2 버전으로 변경 필요
ls -lZd /var/www/html
drwxr-xr-x. root root system_u:object_r:nfs_t:s0 /var/www/html
NFS-WEB 연동
SELinux 설정 변경
클라이언트에서 마운트 해제 후 컨텍스트 확인
# 마운트 해제
umount /var/www/html
# 컨텍스트 확인(httpd_sys_content_t)
ls -lZd /var/www/html
...
-rw-r--r--. root root unconfined_u:object_r:httpd_sys_content_t:s0 index.html
...
서버에서 NFS 버전 설정
/etc/sysconfig/nfs 설정 파일
# 4.1에서 4.2로 버전 변경
vi /etc/sysconfig/nfs
14 RPCNFSDARGS="-V4.2"
# 서비스 재시작
systemctl restart nfs-server
클라이언트에서 마운트 설정
1) NFS 버전 지정: v4.2
2) context 항목 지정: 기존의 html 파일의 컨텍스트
# 마운트 설정 파일 수정(컨텍스트 추가)
vi /etc/fstab
10.0.2.40:/contents /var/www/html nfs rw,sync,sec=sys,v4.2,context="unconfined_u:object_r:httpd_sys_content_t:s0" 0 0
# 마운트
mount -a
웹 서비스 연동 완료
'쿠버네티스 교육 > 프로젝트' 카테고리의 다른 글
220525_4_세미 프로젝트_웹 서비스 구축_LB-WEB-NFS-DB (0) | 2022.05.25 |
---|---|
220525_3_세미 프로젝트_웹 서비스 구축_로드밸런서 구성 (0) | 2022.05.25 |
220525_1_세미 프로젝트_웹 서비스 구축_WEB-DB 연동 (0) | 2022.05.24 |
220524_2_세미 프로젝트_웹 서비스 구축_DB 서버 이중화 구성-2 (0) | 2022.05.24 |
220524_1_세미 프로젝트_웹 서비스 구축_DB 서버 이중화 구성-1 (0) | 2022.05.24 |