Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Tags more
Archives
Today
Total
관리 메뉴

요리사에서 IT개발자로

Rocky Linux 9-1에 WordPress, HAProxy, DNS 서버 구성하기 본문

AWS

Rocky Linux 9-1에 WordPress, HAProxy, DNS 서버 구성하기

H.S-Backend 2024. 10. 22. 14:01
#! /bin/bash

dnf -y install wget tar httpd
wget https://ko.wordpress.org/wordpress-5.8.8-ko_KR.tar.gz
tar xvfz wordpress-5.8.8-ko_KR.tar.gz
cp -ar wordpress/* /var/www/html
sed -i 's/DirectoryIndex index.html/DirectoryIndex index.php/g' /etc/httpd/conf/httpd.conf
dnf -y install php php-curl php-cli php-common php-gd php-mysqlnd
cp /var/www/html/{wp-config-sample.php,wp-config.php}
sed -i 's/database_name_here/word/g' /var/www/html/wp-config.php
sed -i 's/username_here/root/g' /var/www/html/wp-config.php
sed -i 's/password_here/It12345!/g' /var/www/html/wp-config.php
sed -i 's/localhost/10.0.0.14/g' /var/www/html/wp-config.php
systemctl enable --now httpd
firewall-cmd --add-port=80/tcp

1. WordPress 설치 및 Apache 설정

WordPress는 오픈소스 웹사이트 및 블로그 구축 시스템으로, Rocky Linux 9-1 환경에서 Apache 웹 서버와 함께 설치하는 방법을 다룹니다.

Step 1: 필수 패키지 설치

Apache, wget, tar을 설치합니다.

dnf -y install wget tar httpd

Step 2: WordPress 다운로드 및 압축 해제

WordPress 5.8.8 한국어 버전을 다운로드한 후, 압축을 풀고 웹 서버의 루트 디렉토리에 복사합니다.

wget https://ko.wordpress.org/wordpress-5.8.8-ko_KR.tar.gz 
tar xvfz wordpress-5.8.8-ko_KR.tar.gz
cp -ar wordpress/* /var/www/html
 

Step 3: Apache 설정 수정

Apache가 index.php 파일을 기본 페이지로 읽도록 설정합니다.

sed -i 's/DirectoryIndex index.html/DirectoryIndex index.php/g' /etc/httpd/conf/httpd.conf

Step 4: PHP 및 필요한 모듈 설치

WordPress는 PHP 기반이므로 PHP와 함께 필요한 PHP 모듈들을 설치합니다.

dnf -y install php php-curl php-cli php-common php-gd php-mysqlnd

Step 5: WordPress 설정 파일 수정

WordPress의 샘플 설정 파일을 실제 설정 파일로 복사한 뒤, 데이터베이스 연결 정보를 수정합니다.

cp /var/www/html/{wp-config-sample.php,wp-config.php}
sed -i 's/database_name_here/word/g' /var/www/html/wp-config.php
sed -i 's/username_here/root/g' /var/www/html/wp-config.php
sed -i 's/password_here/It12345!/g' /var/www/html/wp-config.php
sed -i 's/localhost/10.0.0.14/g' /var/www/html/wp-config.php

Step 6: Apache 서비스 활성화 및 방화벽 설정

Apache 서비스를 활성화하고, 80번 포트를 방화벽에서 열어줍니다.

systemctl enable --now httpd
firewall-cmd --add-port=80/tcp

2. HAProxy 설정

HAProxy는 로드 밸런서를 설정하기 위한 도구로, 이 단계에서는 웹 트래픽을 분산하는 방법을 설정합니다.

Step 1: HAProxy 설치

dnf install -y haproxy

Step 2: HAProxy 설정 파일 수정 (/etc/haproxy/haproxy.cfg)

  • 68번째 줄: 웹서버가 수신하는 포트를 5000으로 설정하고, 이를 80번 포트로 매핑합니다.
  • 87~88번째 줄: 두 개의 웹 서버를 로드 밸런싱 대상으로 지정합니다.
 
# 68번째 줄 수정
bind *:5000 -> *:80
 
# 87~88번째 줄 수정
server web1 10.0.0.12:80 check
server web2 10.0.0.13:80 check

Step 3: 방화벽 설정

HAProxy도 웹 트래픽을 수신하기 위해 80번 포트를 열어줍니다.

firewall-cmd --add-port=80/tcp
firewall-cmd --reload

3. DNS 서버 설정 (BIND)

DNS 서버는 도메인 네임을 IP 주소로 변환하는 역할을 합니다. 여기서는 BIND를 사용하여 주 도메인과 보조 도메인 DNS 서버를 설정하는 방법을 다룹니다.

Step 1: BIND 설치

dnf install -y bind bind-utils bind-libs

Step 2: 주 도메인 설정

named.conf 설정

  • 11번째 줄: 모든 인터페이스에서 포트 53을 수신하도록 설정
  • 19번째 줄: 모든 클라이언트의 DNS 쿼리를 허용
 
vi /etc/named.conf
# 11번째 줄 수정 listen-on port 53 { any; };
# 19번째 줄 수정 allow-query { any; };

named.rfc1912.zones 설정

DNS 존 정보를 설정합니다. zone은 특정 도메인에 대한 DNS 레코드를 관리하는 역할을 합니다.

vi /etc/named.rfc1912.zones
# 23~27번째 줄에 다음 내용을 추가
zone "도메인" IN {
                               type master;
                               file "1";
                               allow-update { 10.0.0.12; 10.0.0.13; };
}

존 파일 설정

존 파일은 DNS 서버에서 특정 도메인에 대한 레코드를 정의하는 곳입니다. 다음과 같이 설정합니다.

cp
 /var/named/{named.localhost,1} vi /var/named/1 
# 존 파일 내용
 
$TTL1D       
@        IN        SOA        ns1.도메인.com. web. (
                                                                                           0        ;    serial
                                                                                           1D      ;     refresh
                                                                                           1H      ;     retry
                                                                                           1W     ;      expire
                                                                                            3H )  ;      minimum
           NS                        ns1.도메인.com.
           MX       10            mail.도메인.com.
www   A                          10.0.0.11
@        A                          10.0.0.11
ns1      A                          10.0.0.11
mail     A                          10.0.0.11

Step 3: 보조 도메인 설정

보조 DNS 서버는 주 DNS 서버로부터 레코드를 동기화하는 역할을 합니다.

named.conf 설정

  • 11번째 줄과 19번째 줄을 주 도메인과 동일하게 설정합니다.
  • 보조 도메인 존 설정을 추가합니다.
vi /etc/named.conf 
# 11번째 줄 수정
 listen-on port 53 { any; }; 
# 19번째 줄 수정
 allow-query { any; }; 
# 보조 도메인 존 설정 추가
 zone "도메인"
 IN { 
      type slave;
      file "1";
      masters { 10.0.0.11; };
}
반응형