본문 바로가기
클라우드 아키텍처 설계 기초지식/04 리눅스서버 운영

리눅스 서버 운영 (4) - 보조 DNS설정,WEB,DB설정

by Jasie 2019. 3. 14.

6. DNS 서버


6.1 리눅스에서 DNS서버(bind)

1) 설치

yum install bind

2) 설정 파일

/etc/named.conf

6.2 named.conf 파일

1) 기본 설정

options {

directory "/var/named";

};

zone "sjb.com" in {

type master;

file "sjb.com.zone";

};

2) 설정 확인

named-checkconf 출력 결과가 없으면 정상

6.3 zone 영역 파일

1) 영역 파일 설정

/var/named/sjb.com.zone

;(name) (ttl) CLASS TYPE Origin DNSMaster

;-------------------------------------------------------------------------------

@ IN SOA ns.sjb.com. root.sjb.com. (

2018100201 ;serial number

3600 ;Refresh

1800 ;Retry

36000 ;Expire

86400 );TTL

;(name) (ttl) CLASS TYPE Value

;-------------------------------------------------------------------------------

IN NS ns.sjb.com.

ns IN A [ip주소]

www IN A [ip주소]

server IN CNAME www

2) 영역 파일 설정 확인

named-checkzone [도메인] [영역파일] OK가 뜨면 문제가 없음

6.4 루트 힌트 서버 추가

1) /etc/named.conf

zone "." in {

type hint;

file "named.root";

};

2) 루트 힌트 서버 파일 다운

cd /var/named

wget https://www.internic.net/domain/named.root

3) 서비스 재시작

설정이 변경되었으니 서비스를 한 번 재시작한다.

systemctl restart named

4) 확인

nslookup

server [본인 리눅스IP]

www.naver.com 를 물어봤을 때 제대로 알려주면 성공

dig @192.168.240.100 www.naver.com A +trace

[물어 볼 DNS서버] [물어볼 도메인] [레코드 타입] [경로 추적 옵션]

6.5 보조 DNS 서버(영역 전송)

1) 보조 DNS 서버 준비

리눅스 설치

네트워크 설정

DNS 서버 설치

2) /etc/named.conf

options {

directory "/var/named";

};

zone "sjb.com" in {

type slave;

file "slaves/sjb.com.zone";

masters { 192.168.240.100; };

};

3) /var/named 디렉토리

안의 모든 파일 삭제

slaves 디렉토리 생성

slaves 디렉토리 권한 설정 권한 777

보조 DNS 서버의 로컬 방화벽 해제(SELinux 해제) setenforce 0

주 DNS 서버의 네트워크 방화벽 해제 systemctl stop firewalld

보조 DNS 서비스 재시작

4) 보안 설정

본체 PC에서 주DNS의 영역 전송 확인

CMD에서

C:\Users\user>nslookup

기본 서버: google-public-dns-a.google.com

Address: 8.8.8.8

> set type=all

>

> server 192.168.240.100

기본 서버: [192.168.240.100]

Address: 192.168.240.100

>

> ls -d sjb.com

[[192.168.240.100]]

sjb.com. SOA ns.sjb.com root.sjb.com. (2018100201 3600 1800 36000 86400)

sjb.com. NS ns.sjb.com

  • 외부에서 내 DNS에 접속 가능하게 해주는 포트 포워딩이 필수 (포트번호 80->113번)





7. 웹 서버 & DB 서버(MySQL)



7.1 웹서버 및 DB 서버 설치

1) 웹 서버 설치(아파치 httpd)

yum install -y httpd

2) MySQL 설치

yum install http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm

yum install mysql-community-server

7.2 웹 서버 설정 (/etc/httpd/conf/httpd.conf 파일)

1) 기본 디렉토리 설정

DocumentRoot "/var/www/html"

2) 디렉토리 리스팅 거부 설정

기본 폴더인 /var/www/html에 board 및 member 디렉토리 생성

board 밑에는 list.html 생성 사용자들이 접속할 때는 http://192.168.240.200/board/list.html

member 밑에서는 login.html 생성 사용자들이 접속할 때는 http://192.168.240.200/member/login.html

-------------------------------

list.html

-------------------------------

리스트 페이지입니다.

-------------------------------

login.html

-------------------------------

로그인 페이지입니다.

각각 작성

서버 설정 파일에서 수정 전

<Directory "/var/www/html">

Options Indexes FollowSymLinks

AllowOverride None

Require all granted

</Directory>

서버 설정 파일에서 수정 후

<Directory "/var/www/html">

Options FollowSymLinks

AllowOverride None

Require all granted

</Directory>

서비스 재시작 후 확인

3) 에러 페이지 지정

설정 파일 하단 남는 부분에 다음 내용 추가

ErrorDocument 403 /error.html

ErrorDocument 404 /error.html

/var/www/html 밑에 error.html 파일 생성

7.3 아파치 & 톰캣 연동

1) JDK 설치

yum install java-1.8.0-openjdk-devel.x86_64

vi /etc/profile 파일 맨 밑에 추가

JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181-3.b13.el7_5.x86_64

export JAVA_HOME

PATH=$PATH:$JAVA_HOME/bin

export PATH

저장 및 종료

su - root

java -version

2) 톰캣 설치

wget http://mirror.apache-kr.org/tomcat/tomcat-9/v9.0.12/bin/apache-tomcat-9.0.12.tar.gz

아카이브 해제

해제해서 나온 디렉토리를 /usr/local/tomcat9로 이름을 바꾸면서 이동

3) 아파치와 톰캣 연동

(1) 연결 모듈 다운 및 컴파일

yum install httpd-devel

wget http://mirror.navercorp.com/apache/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.44-src.tar.gz

tar zxvf tomcat-connectors-1.2.44-src.tar.gz

cd tomcat-connectors-1.2.44-src/native

yum install -y gcc

./configure --with-apxs=/usr/bin/apxs

make

make install

tomcat-connectors-1.2.44-src/native/apache-2.0/mod_jk.so 파일이 있으면 성공

(3) 아파치 웹서버에 모듈 적용

cp native/apache-2.0/mod_jk.so /usr/lib64/httpd/modules/mod_jk.so y로 덮어쓰기한다.

chmod 755 /usr/lib64/httpd/modules/mod_jk.so

vi /etc/httpd/conf/httpd.conf 파일에 다음 내용 추가

LoadModule jk_module /usr/lib64/httpd/modules/mod_jk.so

<IfModule jk_module>

JkWorkersFile /etc/httpd/conf/workers.properties

JkLogFile /var/log/httpd/mod_jk.log

JkLogLevel info

JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"

JkMount /servlet/* worker1

JkMount /* worker1

</IfModule>

(4) 워커 파일 생성

vi /etc/httpd/conf/workers.properties

worker.list=worker1

worker.worker1.type=ajp13

worker.worker1.socket_connect_timeout=5000

worker.worker1.socket_keepalive=true

worker.worker1.host=192.168.240.200

worker.worker1.port=8009

(5) 서비스 재시작

systemctl stop httpd

/usr/local/tomcat9/bin/shutdown.sh

/usr/local/tomcat9/bin/startup.sh

systemctl start httpd

(6) 확인

7.4 MySQL 초기 설정

1) mysql_secure_installation 명령어 실행

패스워드 설정

2) 접속

mysql -u root -p

7.5 웹 서버 프로그램 적용

1) DB 생성

create database sjb;

2) 생성한 DB에 테이블 생성

use sjb;

create table board (

bno INT NOT NULL auto_increment,

title VARCHAR(200) NOT NULL,

content text NULL,

summary text NULL,

video text NULL,

writer VARCHAR(50) NOT NULL,

regdate TIMESTAMP NOT NULL DEFAULT now(),

viewcnt INT DEFAULT 0,

replycnt INT DEFAULT 0,

type INT DEFAULT 0,

category VARCHAR(200),

primary KEY (bno));

CREATE TABLE `user` (

`uid` varchar(50) NOT NULL,

`upw` varchar(50) NOT NULL,

`uname` varchar(100) NOT NULL,

`upoint` int not NULL default 0,

`sessionKey` varchar(50) NOT NULL DEFAULT 'none',

`sessionlimit` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

`confirmKey` VARCHAR(50) NOT NULL,

`confirm` INT(1) DEFAULT 0,

PRIMARY KEY (`uid`)

);

CREATE TABLE `reply` (

`rno` int NOT NULL auto_increment,

`bno` int not null default 0,

`replytext` varchar(1000) not null,

`replyer` varchar(50) not null,

`regdate` timestamp not null default now(),

`updatedate` timestamp not null default now(),

PRIMARY KEY (`rno`)

);

alter table reply add constraint fk_board foreign key (bno) references board (bno);

CREATE TABLE `attach` (

`fullName` varchar(150) NOT NULL,

`bno` int not null,

`regdate` timestamp default now(),

PRIMARY KEY (`fullName`)

);

alter table attach add constraint fk_board_attach foreign key (bno) references board (bno);

3) 웹 아카이브 파일 다운

cd /usr/local/tomcat9/webapp 여기에 다운

wget http://192.168.201.100:81/sjb.war

톰캣 재시작

/usr/local/tomcat9/bin/shutdown.sh

/usr/local/tomcat9/bin/startup.sh

4) 톰캣의 기본 디렉토리 변경

vi /usr/local/tomcat9/conf/server.xml

<Host name="localhost" appBase="webapps"

unpackWARs="true" autoDeploy="true"> 이 내용 다음 줄에

<Context path="" docBase="sjb" reloadable="true" /> 이 내용 추가 후 저장 및 종료

5) 서비스 재시작

6) http://리눅스IP 입력 하면 웹 페이지 나옴








공감() 과 댓글은 필자에게 큰 힘이 됩니다.

잠시 1초만 내주시면 안될까요? ~~


로그인 없이도 가능합니당 



댓글