공부공부 공부공부내용
vol2 _ 7 웹서버 (Apache, http) (DNS구축 과정포함) 본문
IT 기초, 네트워크, 리눅스/2. 리눅스 기초 vol2 (kvm 활용한 서비스 관리)
vol2 _ 7 웹서버 (Apache, http) (DNS구축 과정포함)
wkdth04 2020. 6. 4. 12:03웹 서비스란
- HTTP 프로토콜에 의해 내용이 전송된다.
- 일반적으로 80/TCP 포트로 전송된다. 가끔은 8080/tcp 443/tcp(http)
- 리눅스는 Apache 라는 웹서버를 사용한다.
first.cccr.co.kr
<Document>
</Document>
seccond.cccr.co.kr
<Document>
</Document>
실습은 세가지.
첫번째, 이름기반 가상호스트 (포트 변경도 중간에)
두번째, IP기반 가상호스트
<실습>
먼저 서버와 클라이언트 창을 띄우고 서버창에서 명령어를 통해 httpd 패키지를 설치한다.
사전환경설정바꿔보면 *필수
sudo yum install -y httpd
sudo systemctl enable httpd
sudo systemctl start httpd
sudo systemctl status httpd
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --reload
아래는 학습과정
cd /var/www/ -> 웹페이지 컨텐츠 디렉토리를 보여준다. 위치 변경도 가능.
cd /etc/httpd/conf -> 설정 파일들이 있는 곳 ls -al 로 확인
vi httpd.conf
cd conf.d/ -> 설정시 참고하는 컨프파일들
vi welcome.conf
cd ..
cd /usr/share/httpd/ -> ls -> 에러메세지 나타내주는 내용들 들어있음
cd /usr/share/httpd/
vi httpd-manual.conf
vi /etc/httpd/conf/httpd.conf -> 포트 8080로 바꾸고 (listen부분)
firewall-cmd --add-port=8080/tcp ->(8080 포트열어주기 기존 80은 서비스열때 자동열림, permanent 영구적으로 하지않을 거라 안함)
vi /etc/httpd/conf/httpd.conf
Document Root "/var/www.http" -> "/var/www/html2" 로 바꾸고 그밑에
#
# DocumentRoot: The directory out of which you will serve your
# documents. By default, all requests are taken from this directory, but
# symbolic links and aliases may be used to point to other locations.
#
DocumentRoot "/var/www/html2"
<Directory "/var/www/html2"> <----그밑은 여기
AllowOverride None
Require all granted
Options Indexes FollowSymLinks
</Directory>
echo "hello world" > /home/user/hello.html <----www밑에 html2디렉토리(생성) 안에 hello 메세지 만들어놓고
Selinux 일단 꺼주기 (위치상관없음)
setenforce 0
getenforce
systemctl restart httpd
아파치 설정파일도 변경
잘 되는지 http://192.168.122.200:8080/hello.html 웹페이지 뜨나 확인
vi /etc/httpd/conf
sudo cat /etc/passwd | grep "apache"
ps -df | grep httpd 보면 httpd 동작확인가능
yum install psmisc -> pstree 깔고
pstree -a 로 확인 (서비스 동작하는지)
Dns 서버 구축
sudo yum install bind* -> dns 서비스 이용을 위한 bind먼저설치
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; };
firewall-cmd --add-service=dns ***꼭....
systemctl start named.service -> 이부분 오류났던 이유 named.conf 파일 오타...
-> journal -xe 로 확인해서 named-checkconf /etc/named.conf 들어가보니 옵션부분 any와 none 옆에 ';' 안해서,,,**
(존추가)
zone "20200604.co.kr." IN {
type master;
file "data/20200604.co.kr.zone";
};
(empty 내용 붙여넣기->위에 생성한 20200406 파일에)
cp /var/named/named.empty /var/named/data/20200604.co.kr.zone
(아까 세컨드하고 퍼스트 등록해주기 위한 작업 /메세지창 두개 주소 )
chmod 754 /var/named/data/20200604.co.kr
vi /var/named/data/20200604.co.kr.zone -> (First 등록 second 등록)
$TTL 3H
@ IN SOA ns.20200604.co.kr root.20200604.co.kr. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ IN NS ns.20200604.co.kr.
IN A 192.168.122.200
www IN A 192.168.122.200
ns IN A 192.168.122.200
first IN CNAME www
second IN CNAME www
systemctl restart named.service
------------------------------------------------------------------
클라이언트
vi /etc/resolv.conf
# Generated by NetworkManager
search cccr.co.kr
nameserver 192.168.122.200
nameserver 8.8.8.8
sudo yum install bind-utils.x86_64
nslookup www.google.com 192.168.122.200
nslookup 20200604.co.kr 192.168.122.200
nslookup first.20200604.co.kr 192.168.122.200
nslookup second.20200604.co.kr 192.168.122.200
이름기반 가상호스트 (port기반 가상호스트 도 같이, 원래는 80포트 일반적이지만 8080바꿔본 것,포트부분 생략가능)
[server]
Vi /etc/httpd/conf.d/virtualhost.conf
Virtual host등록
<VirtualHost 192.168.122.200:8080>
DocumentRoot “/var/www/html”
ServerName “first.20200604.co.kr” → 들어오는 주소
</VirtualHost>하기
위에 그대로 복사해서 밑에 붙여넣기 일단 그리고 second로 바꿔주기
<VirtualHost 192.168.122.200:8080>
DocumentRoot “/var/www/html2” -> **** html2*****
ServerName “second.20200604.co.kr” → 들어오는 주소
</VirtualHost>
cd /var/www/html
echo “hello” > index.html
cd ..
cd html2/
echo “world” > index.html
systemctl restart httpd.service
후 접근
[client]
sudo yum install curl
DNS 주소 등록
vi /etc/resolv.conf -> nameserver 8.8.8.8위에 추가
# Generated by NetworkManager
nameserver 192.168.122.200
nameserver 8.8.8.8
nslookup www.20200604.co.kr 로 확인
curl 로 확인도 해보기
curl first.20200604.co.kr:8080 →> 메세지 hello 뜸
curl world.20200604.co.kr:8080 →> 메세지 world 뜸
<여기까지 방금문제 이름기반 가상호스트→ 금요일 시험에 냄>
IP 기반 가상 호스트
firewall-cmd --remove-port=8080/tcp
vi /etc/httpd/conf/httpd.conf
Listen 80
vi /etc/httpd/conf.d/virtualhost.conf
<VirtualHost 192.168.122.200>
DocumentRoot "/var/www/html"
ServerName "first.20200604.co.kr"
</VirtualHost>
<VirtualHost 192.168.122.150>
DocumentRoot "/var/www/html2"
ServerName "second.20200604.co.kr"
</VirtualHost>
nmcli con mod enp0s8 +ipv4.addresses 192.168.122.150/24
nmcli con up enp0s8
systemctl restart httpd
브라우저에 192.168.122.150/index.html 입력 -> world
(예제)
Server에 네트워크 카드 추가
ip 할당 192.168.122.150
ip 기반 가상호스트 실습
하드웨어 네트워크카드 추가후 nmcli con add con-name ens9 type ethernet ifname ens9
'IT 기초, 네트워크, 리눅스 > 2. 리눅스 기초 vol2 (kvm 활용한 서비스 관리)' 카테고리의 다른 글
DNS 예은이정리 (0) | 2020.06.04 |
---|---|
vol2_7_2 HTTPS 구성 (0) | 2020.06.04 |
vol2_ smb스토리지 (0) | 2020.06.04 |
vol2 _4 NFS (0) | 2020.06.03 |
vol2_3 DNS 서버구성 (DHCP 포함) (0) | 2020.06.03 |