이번 실습은 첫 개인 Project로 그동안의 공부를 확인하고, 스스로 검색해보며,
서버의 원리에 대해 더 이해하고자 실습하게되었다.실습의 개요는 다음과 같다.
1. client가 WAS로 접속할 때 DNS Proxy서버를 통해 접속.
2. DNS Proxy서버는 WAS로 가는 길목에서 Load Balancing
3. 평상시 DB는 MASTER DB를 주로 사용하고, Slave DB는 자동 백업용으로 사용한다.
4. WAS 2대는 Master DB를 참조하고 있다가, 고장이 나면 SLAVE DB가 Master DB로 승격
그림으로 요약하면 아래와 같다.

이를 실현하기 위해서 서버 5대가 필요했다.
Clinent는 Window 10에서사용하기로 했고, 나머지 5대는 Vmware 16Pro에서 서버를 구축하기로 했다.
역할 | 운영체제 및 프로그램 | 목적 |
client | windows | 클라이언트 역할 |
DNS Proxy Server | Ubuntu - Ngnix | LoadBalancing, 클라이언트 보안 |
WAS2대 | Ubuntu - Wordpress | WAS역할 |
DB2대 | Ubuntu-MYSQL | DB역할 |
1단계: IP주소 설정
Client:
db1: 192.168.2.20Master
db2: 192.168.2.21Slave
proxyserver:192.168.2.22dnsproxy
WAS1wordpress:192.168.2.23
WAS1wordpress:192.168.2.24
Mysql 설치
[Ubuntu] 우분투에 MySQL 설치하기
apt-get 이라는 패키지 매니저를 이용해 설치를 진행한다. 우분투리눅스를설치했다면이미설치되어있다. 1. 우분투 서버 업데이트 2. mysql-server 설치 $ sudo apt-get install mysql-server 설치 중간 중간
velog.io
MYSQL 설치
방화벽 끄기
ufw disable
mysql-server설치
sudo apt-get update
sudo apt-get install mysql-server
서비스 설정
root@db1:~# systemctl start mysql
root@db1:~# systemctl enable mysql

mysql 접속
root@db1:~# /usr/bin/mysql -u root -p
mysql -u root -p라고 해도 되는데 /usr/bin/mysql과 동일한 의미이다.
만약 저 경로에 mysql이 없다면 실행이 되지 않는다.
mysql> show variables like "%version%";
버전을 확인해본다.

MYSQL MASTER, SLAVE REPLICA
서버 분산 처리 환경에서 MySQL을 Master/Slave로 이중화하기
Scale-out시, 프로젝트 에서는 평소에는 서버 트래픽은 잠잠하지만 갑자기 read 할 request 양이 많아 대용량 트래픽이 있을 수 있다고 말씀드렸습니다.이외에도 다른 관점에서 트래픽이 모이는 현상
velog.io
Slave




master
nano /etc/mysql/mysql.conf.d/mysqld.cnf
#수정#
bind-address = 0.0.0.0
server-id = 1 @
log_bin = /var/log/mysql/mysql-bin.log
expire_logs_days = 90
sudo systemctl restart mysql
mysql> create user 'db2'@'192.168.111.11' identified by '123';
Query OK, 0 rows affected (0.00 sec)
mysql> grant replication slave on *.* to 'db2'@'192.168.111.11';
Query OK, 0 rows affected (0.00 sec)

slave
nano /etc/mysql/mysql.conf.d/mysqld.cnf
server-id = 2
change replication source to source_host='192.168.111.10', source_log_file='mysql-bin.000031', source_log_pos=713, source_ssl=123;

mysql> start replica user='db2' password='123';
Query OK, 0 rows affected, 2 warnings (0.00 sec)

master db

slave db



몇시간 째 고민했는데 아직 답을 못찾았다. mariadb로도 해봤는데 똑같이 뜨는 것을 발견했다.
좀 더 공부가 필요한 듯 하다.
WAS WORDPRESS-MYSQL DB연동
사전 설치
root@was1:~#apt install mysql-client-core-8.0
root@was2:~#apt install mysql-client-core-8.0
sudo apt install apache2 \
ghostscript \
libapache2-mod-php \
mysql-server \
php \
php-bcmath \
php-curl \
php-imagick \
php-intl \
php-json \
php-mbstring \
php-mysql \
php-xml \
php-zip
root@was1:~# systemctl reload apache2
root@was1:~# systemctl enable apache2
root@was1:~# systemctl restart apache2
curl https://wordpress.org/latest.tar.gz | sudo tar zx -C /var/www/
root@was1:~# nano /etc/apache2/sites-available/wordpress.conf

참고 자료
https://server-talk.tistory.com/
MySQL Replication복제 - 단방향 이중화
MySQL Replication을 이용하여 DBMS 단방향 이중화하기 웹서버 부하로 인해 L4를 이용하여 로드밸런싱으로 웹서버의 부하를 해결하였지만, DB 서버의 부하로 인하여 사이트가 느리게 열리는 현상이 발
server-talk.tistory.com
[Wordpress] 설치하기 4부 - DB 셋팅 및 워드프레스 설치
Ubuntu 20.04.1 LTS에 워드프레스 설치를 위한 DB 셋팅 및 워드프레스 설치
ksbgenius.github.io
https://itconquest.tistory.com/entry/wordpress-database-concept
워드프레스 데이터베이스 기본 개념 이해하기
워드프레스 데이터베이스에 대해 알아야 하는 이유 워드프레스는 웹사이트 초보자가 기술적인 요소가 없어도 웹사이트를 구축할 수 있기 때문에 많은 사람들이 이용하는 웹사이트 플랫폼이다.
itconquest.tistory.com
https://ppangkkeus-ppangkkeus.tistory.com/18
[리눅스] wordpress 설치 및 설정 방법
안녕하세요 빵끗미에요 오늘은 wordpress 설치 및 설정 방법에 대해서 알아보도록 할게요. 우선 wordpress 설치하기 전에 os 환경 구성이 apache, php, mysql 설치가 되어 있어야 돼요. 아직 apache, php, mysql
ppangkkeus-ppangkkeus.tistory.com