미니프로젝트 README

김건호·2022년 3월 17일
0

버전 0.1 (db, web 구축 2022.03.15)
버전 1.0 (dns, https 구축, word press 활성 2022.03.16)
버전 1.1 (nfs, 로드밸런싱 구축 2022.03.17)
문서 마무리 2022.03.18

DNS/WEB/DB/word press 게시판 구현

목록내용
작업 기간2022.03.15 ~ 2022.03.18
인원1명
참고자료Google

목차

  1. 프로젝트 개요
    1.1 프로젝트 목적
    1.2 프로젝트 환경
    1.3 시스템 구조
  2. 프로젝트 과정
    2.1 DATABASE 서버 구축
    2.2 WEB 서버 구축
    2.3 DNS 서버 구축
    2.4 https 설정
    2.5 nfs 서버 구축
    2.6 로드 밸런싱 구축
  3. 트러블 슈팅
    3.1 errOR 2002 (HY000): Can't connect to server on '..*.120' (115)
    3.2 Error establishing a database connection
    3.3 Ignoring qurey to other databse
    3.4 ;; connection timed out; no servers could be reached
    3.5 이 CA 루트 인증서는 신뢰할 수 없습니다. 신뢰를 얻으려면, 이 인증서를 신뢰할 수 있는 루트 인증 기관 저장소에 설치하십시오.
    3.6. clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)
    3.7. rpc mount export: RPC: Unable to receive; errno = No route to host
    3.8. 로드 밸런싱 테스트 시 서버1에만 접속되는 경우
  4. 프로젝트 결과
    4.1 wordpress 접속
    4.2 DATABASE TABLE
    4.3 NFS 결과
    4.4 로드 밸런싱 결과
  5. 참고문헌

1. 프로젝트 개요

1.1. 프로젝트 목적

DNS서버, WEB서버, DB서버 3가지의 리눅스 서버 인프라를 구축을 통한 WORDPRESS 구현, NFS 서버를 통한 파일 및 디렉토리 공유 활성화, 로드 밸런싱을 통한 트래픽 분산 환경 구축

1.2. 프로젝트 환경

시스템명버전
LinuxCentOS Linux-7.5.1804(Core)
DNS Serverbind-9.11.4
WEB ServerApache(httpd-2.4.6-97) + php-7.4 + wordpress
DATABASE Servermysql-15.1, MariaDB-10.7.3
ClientWindow Chorme
httpsmod_ssl-2.4.6-97
nfsnfs-utils-1.3.0

1.3. 시스템 구조

2. 프로젝트 과정

2.1. DATABASE 서버 구축

2.1.1. MariaDB 설치

wordpress를 사용하기 위해선 Mysql 5.7 또는 MariaDB 10.2 이상 필요
How to install MariaDB on CentOS 7 / RHEL 7
mariadb_repo_setup파일을 구성하기 위해 wget 설치 후 진행

[root@db ~]# yum install wget
[root@db ~]# wget https://downloads.mariadb.com/MariaDB/mariadb_repo_setup
[root@db ~]# chmod +x mariadb_repo_setup
[root@db ~]# ./mariadb_repo_setup
[root@db ~]# yum install MariaDB-server

2.1.2. MariaDB 활성화

mariadb 서비스 활성화 및 리눅스 시스템 재가동 시에도 자동으로 실행될 수 있도록 설정

[root@db ~]# systemctl start mariadb.service
[root@db ~]# systemctl enable mariadb.service

2.1.3. mariadb-secure-installaion를 이용한 보안 설정

mariadb 10.4 이상부터 mysql_secure_installaion은 mariadb-secure-installaion으로 대체

[root@db ~]# mariadb-secure-installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
haven't set the root password yet, you should just press enter here.

Enter current password for root (enter for none):
OK, successfully used password, moving on...

Setting the root password or using the unix_socket ensures that nobody
can log into the MariaDB root user without the proper authorisation.

You already have your root account protected, so you can safely answer 'n'.
2.1.3.1. unix_sokect 인증 N

mariadb 10.4 이상부터 보안 설정을 실행하면 루트 계정이 이미 보호되어 있으므로 unix_socket 인증 설정이나 암호 설정여부에 n으로 설정해도 안전

Switch to unix_socket authentication [Y/n] n
 ... skipping.
2.1.3.2. 루트 비밀번호 설정 Y

wordpress 설정 시에 필요하기 때문에 루트 비밀번호 설정

You already have your root account protected, so you can safely answer 'n'.

Change the root password? [Y/n] Y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
 ... Success!
2.1.3.3. 익명 유저 제거 Y

n 설정 시 사용자 계정을 만들지 않아도 접근 가능하므로 Y로 설정

By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] y
 ... Success!
2.1.3.4. 외부접근 제한 N

Y로 설정 시, 외부에서 데이터베이스 접근 불가

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] n
 ... skipping.
2.1.3.5. test DB 제거 Y

test DB는 사용하지 않을 것이므로 Y

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!
2.1.3.6. tables reload Y

Y 선택 시 변경사항 즉시 적용

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] y
 ... Success!
2.1.3.7. 보안설정 완료

db 보안 설정 완료

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

2.1.4. 외부접근 허용

2.1.4.1. wordpress 데이터베이스 생성

wordepress에서 생성된 데이터를 조회, 생성, 삭제, 업데이트를 위한 데이터베이스 생성

[root@db ~]# mysql -u root -p
MariaDB [(none)]> CREATE DATABASE wordpress;
Query OK, 1 row affected (0.001 sec)
2.1.4.2. 데이터베이스 관리 유저 생성

사용자@'%' -> 모든 IP에 대해 접근을 허용

MariaDB [(none)]> CREATE USER adminuser@'%' IDENTIFIED BY '패스워드';
Query OK, 0 rows affected (0.006 sec)
2.1.4.3. 외부접근이 가능한 권한 부여

해당 사용자에게 wordepress 데이터베이스에 모든 테이블에 접근이 가능한 권한 부여

MariaDB [(none)]> GRANT ALL PRIVILEGES ON wordpress.* TO adminuser@'%' IDENTIFIED BY '패스워드';
Query OK, 0 rows affected (0.001 sec)

2.1.5. 연결을 위한 3306 포트 추가

mysql은 3306 포트 사용

[root@db ~]# firewall-cmd --permanent --zone=public --add-port=3306/tcp
success
[root@db ~]# firewall-cmd --reload
success

2.2. WEB 서버 구축

2.2.1. APACHE(httpd) 설치

Apache 서비스를 위한 패키지 설치

[root@server ~]# yum install httpd

2.2.2. httpd 활성화

[root@server ~]# systemctl start httpd
[root@server ~]# ystemctl enable httpd

2.2.3. httpd 방화벽 연결

[root@server ~]# firewall-cmd --add-service=http --permanent
[root@server ~]# firewall-cmd --reload

2.2.4. php 설치

wordpress를 사용하기 위해서는 php 7.4 이상 필요
remi와 yum-utils를 사용하지 않으면 5.4 버전이 설치되므로 remi와 yum-utils로 버전 변경

[root@server ~]# yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm
2.2.4.1. 버전 변경을 위한 yum유틸설치
[root@server ~]# yum install -y yum-utils  
2.2.4.2. php5.4버전 끄기
[root@server ~]# yum-config-manager --disable remi-php54 
2.2.4.2. php7.4버전 켜기
[root@server ~]# yum-config-manager --enable remi-php74 
2.2.4.2. php7.4 설치

php 7.4와 필요한 라이브러리 함께 설치

[root@server ~]# yum install php74
[root@server ~]# yum install -y php74-php php-cli php74-scldevel \
php74-php-xml php74-php-xmlrpc php74-php-soap \
php74-php-process php74-php-pgsql php74-php-pdo \
php74-php-opcache php74-php-mbstring php74-php-ldap \
php74-php-json php74-php-ioncube-loader php74-php-intl \
php74-php-gmp php74-php-gd php74-php-fpm php74-php-devel \
php74-php-dba php74-php-common php74-php-cli \
php74-php-bcmath php74-php-phpiredis  php74-php-pecl-igbinary \
php74-php-pecl-imagick-im7 php74-php-pecl-imagick-im7-devel \
php74-php-pecl-igbinary-devel php74-php-pecl-geoip \
php74-php-pecl-xdebug php74-php-pecl-mysqlnd-azure

2.2.5. wordpress 게시판 다운

2.2.5.1. wordpress 홈페이지에서 압축파일 다운로드

인터넷에서 파일을 받기 때문에 wget 사용

[root@server ~]# wget https://wordpress.org/latest.tar.gz
2.2.5.2. 압축 해제

Apache 서비스를 사용하기 때문에 /var/www/html 아래에 해제

[root@server ~]# tar -xvzf latest.tar.gz -C /var/www/html
2.2.5.3. 이미지 파일 업로드를 위한 디렉토리 생성
[root@server ~]# mkdir /var/www/html/wordpress/uploads

2.2.6. wordpress 구성

샘플 파일을 이용하여 구성

[root@server wordpress]# pwd
/var/www/html/wordpress
[root@server wordpress]# cp wp-config-sample.php wp-config.php
2.2.6.1. 압축해제된 디렉토리와 하위 디렉토리에 소유자 그룹 변경

Apache 서비스를 사용하기 때문에 소유자 소유그룹 apache로 변경

[root@server wordpress]# chown -R apache:apache /var/www/html/wordpress
2.2.6.2. wp-config.php 설정

db 외부 접속 허용시 만들었던 wordpress 데이터베이스를 관리하는 adminuser 정보 입력
hostname에 도메인은 DNS 서버 구축 시 설정

[root@server wordpress]# vim  wp-config.php 설정
// ** Database settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define( 'DB_NAME', 'wordpress' );

/** Database username */
define( 'DB_USER', 'adminuser' );

/** Database password */
define( 'DB_PASSWORD', '패스워드' );

/** Database hostname */
define( 'DB_HOST', 'db.word.project.com' );

2.2.7. Apache 설정

접속 시 보여줄 web파일 경로 지정

[root@server wordpress]# vi /etc/httpd/conf/httpd.conf
DocumentRoot "/var/www/html/wordpress"
...
<Directory "/var/www/html">
    AllowOverride None
    # Allow open access:
    Require all granted
</Directory>
...
<Directory "/var/www/html/wordpress">
[root@server wordpress]# systemctl restart httpd

2.3. DNS 서버 구축

2.3.1. DNS 서비스를 위한 패키지 설치

2.3.1.1. bind, bind-utils 설치
[root@dns ~]# yum -y install bind bind-utils

2.3.2. DNS 서비스 설정

NAT서비스를 사용하기 위해 enp0s3을 사용
192...*번대 ip주소는 연결 시 불안정하여 10번대 주소 사용

[root@dns ~]# nmcli con add con-name static ifname enp0s3
type ethernet ip4 10.0.2.10/24 gw4 10.0.2.2
[root@dns ~]# nmcli con mod static ipv4.dns 10.0.2.10
[root@dns ~]# nmcli con up static

2.3.3. DNS 설정 파일 수정

모든 ip에 대해 질의, 응답을 허용

[root@dns ~]# vi /etc/named.conf
options {
        listen-on port 53 { any; };
        listen-on-v6 port 53 { none; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";        memstatistics-file "/var/named/data/named_mem_stats.txt";
        recursing-file  "/var/named/data/named.recursing";        secroots-file   "/var/named/data/named.secroots";
        allow-query     { any; };
....
zone "word.project.com" IN {
        type master;
        file "word.project.com.zone";
};

2.3.4. zone 파일 설정

탬플릿을 위해 empty파일 이용
보안을 위해 소유그룹 named, 루트에만 권한 부여

[root@dns ~]# cd /var/named/
[root@dns named]# ls
data     named.ca     named.localhost  slaves
dynamic  named.empty  named.loopback
[root@dns named]# cp named.empty word.project.com
[root@dns named]# vi word.project.com.zone
$TTL 3H
@       IN SOA  word.project.zone. root.word.project.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      dns.word.project.com.
        A       10.0.2.2
dns     A       192.168.56.109
server  A       192.168.56.106
db      A       192.168.56.108

[root@dns named]# chmod 660 word.project.com.zone
[root@dns named]# chown :named word.project.com.zone

2.3.5. named 시스템 활성화

[root@dns named]# systemctl start named

2.3.6. named 시스템 방화벽 활성화

[root@dns named]# firewall-cmd --add-service=dns --permanent
[root@dns named]# firewall-cmd --reload

2.3.7. dns 서버 작동 확인

[root@dns named]# nslookup
> server
Default server: 10.0.2.10
Address: 10.0.2.10#53
> db.word.project.com
Server:         10.0.2.10
Address:        10.0.2.10#53

Name:   db.word.project.com
Address: 192.168.56.108

2.3.8. 외부에서 dns 서버 작동 확인

[root@server ~]# nslookup
> server
Default server: 10.0.2.10
Address: 10.0.2.10#53
> db.word.project.com
Server:         10.0.2.10
Address:        10.0.2.10#53

Name:   db.word.project.com
Address: 192.168.56.108

2.3.9. web 서버에서 nameserver 수정

구축한 dns서버로 질의, 응답할 수 있도록 설정

[root@server ~]# vi /etc/resolv.conf
# Generated by NetworkManager
search word.project.com
nameserver 10.0.2.10

2.4. https 설정

2.4.1. https서비스를 위한 mod_ssl 패키지 설치

2.4.1.1. 패키지 설치

https는 SSH과 TLS 사용ㄴ

[root@server ~]# yum -y install mod_ssl
2.4.1.2. 서비스 활성화
[root@server ~]# systemctl start httpd

2.4.2. 방화벽 설정

[root@server ~]# firewall-cmd --add-service=https
[root@server ~]# firewall-cmd --reload

2.4.3. 인증서 생성

2.4.3.1. 개인키 생성
[root@server ~]# cd /etc/httpd/conf.d
[root@server conf.d]# openssl genrsa -out private.key 2048
Generating RSA private key, 2048 bit long modulus
............................................................................................................................+++
......................................................................................................................................+++
e is 65537 (0x10001)
2.4.3.2. 생성된 키로 인증서 생성
[root@server conf.d]# openssl req -new -key private.key -out cert.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:kr
State or Province Name (full name) []:admin
Locality Name (eg, city) [Default City]:seoul
Organization Name (eg, company) [Default Company Ltd]:seoul
Organizational Unit Name (eg, section) []:adm
Common Name (eg, your name or your server's hostname) []:server.word.project.com
Email Address []:admin@word.project.com

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
2.4.3.3. 개인키와 인증요청서를 가지고 인증서 생성
[root@server conf.d]# openssl x509 -req -signkey private.key -in cert.csr -out cert.crt
Signature ok
subject=/C=kr/ST=admin/L=seoul/O=seoul/OU=adm/CN=server.word.project.com/emailAddress=admin@word.project.com
Getting Private key
2.4.3.4. 개인키와 인증서설치

/etc/pki/tls/keyname.key : 개인 키 600 또는 400 사용권한과 cert_t로 유지
/etc/pki/tls/certname.csr : 서명 요청할 때만 생성, CA로 보내는 파일 서명용
/etc/pki/tls/cert/cretname.crt : 공개 인증서, 자체 서명된 인증서가 요청될 때만 생성. 서명 요청이 있고 CA로 전송될 때 CA에서 반환되는 파일 644 cert_t로 유지

[root@server conf.d]# chmod 600 private.key cert.csr
[root@server conf.d]# mv private.key /etc/pki/tls/private/
[root@server conf.d]# mv cert.* /etc/pki/tls/certs/

2.5 NFS 서버 구축

Network File System
클라이언트 컴퓨터의 사용자가 네트워크 상의 파일을 직접 연결된 스토리지에 접근하는 방식과 비슷한 방식으로 접근하도록 도움

2.5.1. NFS 패키지 설치

[root@nfs ~]# yum -y install nfs-utils

2.5.2. 공유할 디렉토리 추가 및 권한 설정

share 디렉토리에 해당 IP 접근가능, 읽기 쓰기 권한
sync -> NFS가 쓰기 작업할 때마다 디스크 동기화

[root@nfs ~]# vi /etc/exports
/share 192.168.56.*(rw,sync)

일반 사용자도 공유디렉토리에 접근 가능하도록 설정

[root@nfs ~]# mkdir /share
[root@nfs ~]# chmod 707 /share
[root@nfs ~]# cp /boot/vm* /share
[root@nfs ~]# ls /share/
vmlinuz-0-rescue-bb9afee5d305ab46b7f34ffc7d08f145  vmlinuz-3.10.0-862.el7.x86_64

2.5.3. nfs 시스템 재시작

nfs 서비스를 상시 가동하기 위한 설정

[root@nfs ~]# systemctl restart nfs-server
[root@nfs ~]# systemctl enable nfs-server
Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.

2.5.4. 서비스 가동 확인

exportfs : 로컬의 디렉토리를 NFS 클라이언트로 export하거나 unexport하는 명령어
v옵션은 현재 NFS공유리스트를 출력

[root@nfs ~]# exportfs -v
/share          192.168.56.*(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,root_squash,no_all_squash)

2.5.5. 방화벽에 포트 추가 및 nfs 서비스 추가

nft 서비스에 tcp가 활성화 되어 있기 때문에 udp 포트만 추가적으로 열어줌

[root@nfs ~]# firewall-cmd --permanent --add-service=nfs
[root@nfs ~]# firewall-cmd --permanent --add-port=111/udp
[root@nfs ~]# firewall-cmd --permanent --add-port=20048/udp
2.5.5.1 최종적으로 nfs서버에서 열린 port
[root@nfs ~]# firewall-cmd --list-all
public (active)
  ...
  services: ssh dhcpv6-client nfs
  ports: 111/udp 20048/udp
  ...
[root@nfs ~]# cat /etc/services | grep 111/udp
sunrpc          111/udp         portmapper rpcbind      # RPC 4.0 portmapper UDP
[root@nfs ~]# cat /etc/services | grep 20048/udp
mountd          20048/udp               # NFS mount protocol

2.5.6. dns를 위한 zone 파일 수정

[root@dns named]# vi word.project.com.zone
...
nfs      A       192.168.56.110

2.5.7. 웹서버에서 NFS 서버에서 공유된 디렉토리 확인

showmount -e로 export된 디렉터리의 목록을 출력

[root@server ~]# showmount -e nfs.word.project.com
Export list for nfs.word.project.com:
/share 192.168.56.*

2.5.8. NFS 공유 디렉토리와 마운트할 디렉토리 생성

[root@server ~]# mkdir /webShare

2.5.9. 생성한 디렉토리와 마운트

웹서버의 디렉토리와 공유 디렉토리 연결

[root@server ~]# mount -t nfs nfs.word.project.com:/share /webShare

2.5.10. 영구 마운트 설정을 위해 /etc/fstab파일에 설정

[root@server ~]# vi /etc/fstab
...
nfs.word.project.com:/share /webShare nfs defaults 0 0

2.5.11. 마운트 확인

df -T로 장치 확인

[root@server ~]# df -T
Filesystem            Type     1K-blocks    Used Available Use% Mounted on
...
nfs.word.project.com:/share nfs4      58690816 5528320  53162496  10% /webShare

2.6 로드밸런싱 구축

DNS를 이용하여 도메인 정보를 조회하는 시점에서 다른 IP정보를 통해 트래픽을 분산하는 기법

NFS서버를 second web 서버로 사용

2.6.1. zone 파일에 second 서버 ip 추가

server2에도 자원을 할당 하기 위해 DNS Round Robin 사용
DNS Round Robin을 위해 TTL 값을 1로 설정

[root@dns named]# vi word.project.com.zone
...
server	1	IN  A       192.168.56.106
server	1	IN  A       192.168.56.110
...

2.6.2. dns 서비스 재시작

[root@dns named]# systemctl restart named

2.6.3. nslookup으로 확인

하나의 도메인 질의 시, 두 개의 IP를 받아오는지 확인

[root@server ~]# nslookup
> server.word.project.com
Server:         10.0.2.10
Address:        10.0.2.10#53

Name:   server.word.project.com
Address: 192.168.56.106
Name:   server.word.project.com
Address: 192.168.56.110

2.6.4. server2 에 테스트용 페이지 생성

[root@nfs ~]# vi /var/www/html/index.html
<html><body><h1>It server2</h1>
</body></html>

2.6.5. server2 웹서비스 재시작

[root@nfs ~]# systemctl restart httpd

3. 트러블슈팅

3.1. errOR 2002 (HY000): Can't connect to server on '..*.120' (115)

errOR 2002 (HY000): Can't connect to server on '*.*.*.120' (115)

웹 서버에서 데이터베이스 서버 접속 시, 연결이 불가능 하였음.
원인은 enp0s9로의 접근 자체가 불가능했던 점을 파악하지 못 하였음.
enp0s8을 사용하여 접속함으로써 해결.

3.2. Error establishing a database connection

웹 서버에서 데이터베이스 서버 접속 시, 각 서버의 유형 차이로 생기는 오류
각 서버에서 SELINUX 모드 해제 시 해결

[root@server ~]# setenfoce 0
[root@db ~]# setenfoce 0

3.3. Ignoring qurey to other databse

Ignoring query to other database
[root@db ~]# mysql -root -p

db 접속 시, -u 옵션을 사용하지 않았음

3.4. ;; connection timed out; no servers could be reached

[root@server ~]# nslookup
> server
Default server: 10.0.2.10
Address: 10.0.2.10#53
> www.nate.com
;; connection timed out; no servers could be reached
> db.word.project.com
;; connection timed out; no servers could be reached

dns 서버에서 dns 방화벽을 추가 후, reload 하지 않았음

3.5. 이 CA 루트 인증서는 신뢰할 수 없습니다. 신뢰를 얻으려면, 이 인증서를 신뢰할 수 있는 루트 인증 기관 저장소에 설치하십시오.



개인서명이기 때문에 신뢰할 수 없다라고 나옴, 보안접속은 가능

3.6. clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)

[root@server ~]# showmount -e 192.168.56.110
clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)

111 포트를 열지 않아서 생김

[root@nfs ~]# firewall-cmd --permanent --add-port=111/udp
success
[root@nfs ~]# cat /etc/services | grep 111/udp
sunrpc          111/udp         portmapper rpcbind      # RPC 4.0 portmapper UDP

3.7. rpc mount export: RPC: Unable to receive; errno = No route to host

[root@server ~]# showmount -e 192.168.56.110
rpc mount export: RPC: Unable to receive; errno = No route to host

20048 포트를 열지 않아서 생김

[root@nfs ~]# firewall-cmd --permanent --add-port=20048/udp
success
[root@nfs ~]# cat /etc/services | grep 20048/udp
mountd          20048/udp               # NFS mount protocol

3.8. 로드 밸런싱 테스트 시 서버1에만 접속되는 경우

세션이 계속 유지되기 때문에 발생
zone 파일에서 TTL 값을 낮춰주면 해결

[root@dns named]# vi word.project.com.zone
...
server	1	IN  A       192.168.56.106
server	1	IN  A       192.168.56.110
...

4. 프로젝트 결과

4.1. wordpress 접속

https://192.168.56.106 으로 접속

4.1.2. 언어설정

4.1.3. 사용자 생성

4.1.4. 로그인

4.1.5. 메인 페이지

4.2. DATABASE TABLE

MariaDB [wordpress]> show tables;
+-----------------------+
| Tables_in_wordpress   |
+-----------------------+
| wp_commentmeta        |
| wp_comments           |
| wp_links              |
| wp_options            |
| wp_postmeta           |
| wp_posts              |
| wp_term_relationships |
| wp_term_taxonomy      |
| wp_termmeta           |
| wp_terms              |
| wp_usermeta           |
| wp_users              |
+-----------------------+
12 rows in set (0.000 sec)

4.3. NFS 결과

4.3.1. NFS 서버에서 파일 생성

[root@nfs ~]# touch /share/nfstest
[root@nfs ~]# ls /share/
nfstest  vmlinuz-0-rescue-bb9afee5d305ab46b7f34ffc7d08f145  vmlinuz-3.10.0-862.el7.x86_64

4.3.1. 웹 서버에서 공유된 파일 확인

웹서버에서 마운트 디렉토리에 공유가 되었는가 확인

[root@server ~]# ls /webShare
nfstest  vmlinuz-0-rescue-bb9afee5d305ab46b7f34ffc7d08f145  vmlinuz-3.10.0-862.el7.x86_64

4.4. 로드 밸런싱 결과

4.4.1. server1 접속

4.4.2. server2 접속

5. 참고문헌

exportfs
3.6. 에러
3.7. 에러
3.8. 에러

profile
Ken, 🔽🔽 거노밥 유튜브(house icon) 🔽🔽

0개의 댓글