Loading [MathJax]/jax/output/CommonHTML/jax.js
본문 바로가기
Project

Project 서버망 구축하기: DNS Proxy, DB이중화, WAS서버

by tankwoong 2023. 10. 26.
반응형

이번 실습은 첫 개인 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 설치 

https://velog.io/@seungsang00/Ubuntu-%EC%9A%B0%EB%B6%84%ED%88%AC%EC%97%90-MySQL-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0

 

[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

https://velog.io/@mooh2jj/%EC%84%9C%EB%B2%84-%EB%B6%84%EC%82%B0-%EC%B2%98%EB%A6%AC-%ED%99%98%EA%B2%BD%EC%97%90%EC%84%9C-MySQL%EC%9D%84-MasterSlave%EB%A1%9C-%EC%9D%B4%EC%A4%91%ED%99%94%ED%95%98%EA%B8%B0

 

서버 분산 처리 환경에서 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

https://ksbgenius.github.io/wordpress/2020/08/23/wordpress-installation-part4-db-setting-and-wordpress-installation.html

 

[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

 

반응형