블로그 이미지
오정oI

카테고리

분류 전체보기 (119)
회사 - pj # 나라원 (1)
회사 - pj # 나라원 (2)
이직준비 (10)
국비-클라우드 (1)
학점은행제 (0)
취미 (0)
주식 (0)
외국어 (0)
자격증 (14)
BigData_On (1)
BigData_Off1 (74)
클라우드 (0)
언어_Framework (1)
언어-Server (2)
언어_Client (0)
업무 (1)
IT참고서적 (1)
IT 최신 트랜드 (0)
제테크 (1)
Study Plan (2)
동영상 및 자료 (5)
여행 (1)
git (0)
Total
Today
Yesterday
반응형
SMALL

* 강사님 강의 노트 :

2월5일_18평일리2.txt

 

* Web Server(Apache)

1> 개념

- apache 웹 서버는 공개형 웹 서버 프로그램으로써 다양한 플랫폼에서 동작할 수 있도록 설계가 되어있음

- apache 웹 서버는 클라이언트가 웹 브라우저를 통해서 요청한 데이터를 클라이언트 웹 브라우저로 보내는 역할

다시 말하면, 웹 서버는 클라이언트의 요청을 기다리고 있다가 요청을 받게 되면 해당 데이터를 보내는 프로그램

 

2> 특징

- standalone (계속 가동중, 요청 기다림)

 

3> 설정파일

/etc/httpd/conf/httpd.conf

-httpd의 설정파일

 

31줄 : 웹 서버 설정파일, 바이너리 파일, 로그 파일, 모듈 파일 등이 저장되어 있는 기본 디렉터리를

지정

41줄 : 지정한 IP Address를 80번 포트로 듣겠음

42줄 : 모든 IP Address를 80번 포트로 듣겠음

ex> 포트를 바꾸는 경우는 보통 서버 리뉴얼을 하는 경우 바꿔서 작업하고 작업 완료시 포트를 원래로 바꿔줌

ex> clubbox에 각 메뉴 탭들을 보면 사용하는 web언어와, 포트가 각 메뉴마다 다른 것을 확인 할 수 있다.

=> 41, 42 둘 중 하나만 써야..,

( 참고로 serverTokens 항목이 centOS 6.x이하에는 있었는데 centOS 6에서는 없어짐

ServerTokens

- 오류 및 서버 메시지를 출력되는 서버에 대한 정보를 설정

CentOS 7 에서는 ServerTokens를 사용하기 위해서 별도로 추가를 해야함

ServerSignature on

값의 종류

Full    → 아파치 서버 버전, 운영체제 정보, 모듈 정보

OS    → 아파치 서버 버전, 운영 체제 정보

Major→ 어퍼차 서버의 주 버전    

Min  → 아파치 서버의 모든 버전

Minor→ 아차피 서버의 하위 버전

Prod → 아파치 서버의 정보 )

 

56줄 : 모듈 관련 파일을 httpd.conf 설정파일에 포함하겠음

(ls -l /etc/httpd/conf.modules.d/*.conf   # /conf.modules.d 하위에 모든 파일목록)

 

66, 67줄 : 실행되는 httpd의 사용자 및 그룹 권한을 설정하는 항목

(보안상 nobody로 사용함)

 

69줄은 서버 설정

86줄: 관리자 e-mail 주소를 적어주는 항목

- 웹 문서 로딩시 에러가 발생 했을 경우 에러 페이지에 보여질 관리자 e-mail 주소를 알려줌

 

94줄 : 클라이언트에게 보여줄 호스트 네임을 지정하는 항목 만약 DNS가 없을 시 IP Address

입력해야함

 

101~104줄 : 최상위 디렉터리에 대한 기본 옵션과 권한을 나타내는 설정

AllowOverride 지시자는 어떻게 접근을 허용할 것인지에 대한 설정

Require all denied는 요구하는 모든 것들을 거부하겠음

denied를 granted로 변경하면 허용하겠다라는 의미

 

118줄 : 관리자의 문서        // index.html 관련

- 서버의 웹 문서가 들어있는 경로를 지정

- 참고로 맨 마지막에 /를 추가하지 않음(dir. 티낼 필요 없음!)

- 심볼릭 링크파일이나 alias로 다른 경로를 가르키도록 설정할 수 있음

다시 말해, 웹 문서가 들어있는 경로

// centOS 6.x 버전대와 달리 centOS 7은 123, 130 라인을 추가해줘야..,

 

123~127줄은 /var/www  디렉터리에 대해서 별도로 기본 옵션과 권한을 나타내는 설정

130 ~156줄은 /var/www/html 디렉터리에 대해서 기본 옵션과 권한을 나타내는 설정

143줄 : Options 지시자는 지정한 디렉터리 하위에 모든 파일과 디렉터리를 적용할

접근 제어를 설정

Indexes는 URL(Uniform Resource Locator : 자원 위치 지정자)을 지정한 디렉터리에

index.html과 같은 지정한 파일이 없을 경우 해당 디렉터리의 파일 목록을 보여줌 

FollowSymLinks는 디렉터리내에서 심볼릭 링크의 사용을 허가함

 

 

 

 

 

 

4> 명령어

web server(apache)

서비스명은 httpd.service

 

 

* Web Browser

1> 개념

- 사용자가 웹 서버에게 필요한 데이터를 요청하도록 해주며 웹 서버가 응답하게 되면 데이터를 컴파일을 통해서

사용자에게 보여주는 역할


2> Web Browser의 종류

Windows → Internet Explorer, Edge

Linux → Firefox

Google → Chrome

Apple → Safari

 

3> 관련 용어

Web Server는 80번 포트를 사용(Well-known)

 

HTTP(Hyper Text Transfer Protocol)

- WWW(World Wide Web) 상에서 정보를 주고받을 수 있는 프로토콜.

주로 html 문서를 주고받는데 쓰임.

- 클라이언트와 서버 사이에 이루어지는 요청(Request)/응답(Response) 프로토콜.

 

Web Document(웹 문서 : HTML 문서)

- 웹 문서는 이미지가 포함된 정적인 형태의 html 문서만을 제공함

 

4> 특징

① 정적 웹 서버의 동작 방식

- 기본적으로 apache 웹 서버는 HTML(HyperText Markup Language)과 같은 정적인 데이터만 처리하게 됨

- 정적이라고 하는 것은 접속 후 데이터를 요청할 때마다 똑같은(변하지 않음) 데이터만 보낸다는 것을 의미

- 호출한 파일을 클라이언트로 가지고 와서 실행함

CSSL(Client Side Script Language) : html, java scripts

- 보안상 취약

- 누구든지 다 볼 수 있음

 

② 동적 웹 서버의 동작 방식

- 동적인 데이터를 처리하기 위해서 웹 스크립트 언어인 C, ASP(Active Server Page), PHP(Personal

Hypertext Preprocessor), JSP(Pava Server Page), Python, Perl 등

 

모듈(Module)은 '전체를 다루는 일부'라고 의미를 둘 수 있음

- 프로그램 내부적으로 하나의 종합된 동작을 하도록 작은 부분을 분할함

더 찾아봥~!

 

- 호출한 파일을 서버에서 실행시켜서 실행 결과 값을 가져옴

 

- 호출한 파일을 서버에서 실행시켜서 실행 결과 값을 가져옴

SSSL(Server Side Script Language) : asp, php 등등

- 보안상 강함

- 나 혼자 보는 것

 

(참고로 Linux는 웹 서버는 Apache, FTP 서버는 vsftpd 사용함

Windows Server는 IIS(Internet Information Service)를 사용함

IIS가 웹 서버와 FTP Server를 포함하고 있음)

 

ex>

사용자들이 naver 요청하면 모두 같은 웹 브라우저를 보게됨 → 정적

여기서 로그인을 하면 모두 다른 화면이 나옴. 나혼자 보는 것→ 동적

인터넷 키면, 웹서버(Apache), DNS, DB 등 같이 구동중..,

 

 

 

 

// 실습

패키지명은 httpd 설치되어 있는지 유무를 확인

패키지명은 httpd로 시작함

 

[root@junga ~]# rpm -qa | grep httpd
[root@junga ~]#
[root@junga ~]# yum -y install httpd*
httpd-manual-2.4.6-67.el7.centos.6.noarch
httpd-2.4.6-67.el7.centos.6.x86_64
httpd-tools-2.4.6-67.el7.centos.6.x86_64
httpd-devel-2.4.6-67.el7.centos.6.x86_64

// 2018.02.05

[root@junga ~]# rpm -qa | grep httpd
httpd-manual-2.4.6-67.el7.centos.6.noarch
httpd-2.4.6-67.el7.centos.6.x86_64
httpd-tools-2.4.6-67.el7.centos.6.x86_64
httpd-devel-2.4.6-67.el7.centos.6.x86_64
[root@junga ~]#
[root@junga ~]# ls -l /etc/httpd/conf/httpd.conf
-rw-r--r-- 1 root root 11753 10월 20 01:44 /etc/httpd/conf/httpd.conf
[root@junga ~]#
[root@junga ~]# cp /etc/httpd/conf/httpd.conf /backup
[root@junga ~]#
[root@junga ~]# ls -l /backup/
합계 52
-rwxr-xr-x 1 root root  8702  1월 12 13:06 00_header
-rw-r--r-- 1 root root   501  1월 23 13:14 fstab
-rw-r--r-- 1 root root  5078  1월 12 13:06 grub.cfg
-rw-r--r-- 1 root root 11753  2월  5 12:46 httpd.conf
-rw------- 1 root root  3907  1월 17 14:02 sshd_config
-r--r----- 1 root root  3938  1월 17 13:10 sudoers
-rw------- 1 root root  5030  1월 19 14:47 vsftpd.conf
[root@junga ~]#
[root@junga ~]# vi /etc/httpd/conf
conf/           conf.d/         conf.modules.d/
[root@junga ~]# vi /etc/httpd/conf
conf/           conf.d/         conf.modules.d/
[root@junga ~]# vi /etc/httpd/conf/httpd.conf
[root@junga ~]#
[root@junga ~]# systemctl restart httpd.service
[root@junga ~]#
[root@junga ~]# vi /etc/httpd/conf/httpd.conf

42 Listen 50000

:wq

[root@junga ~]#
[root@junga ~]# systemctl restart httpd.service    // 파이어 폭스 킨 후 port 50000번 눌러보기!
[root@junga ~]#
[root@junga ~]# vi /etc/httpd/conf/httpd.conf

     43 ServerTokens OS                    //ServerTokens 관련
     44 ServerSignature on

:wq
[root@junga ~]#
[root@junga ~]# systemctl restart httpd.service // 파이어 폭스 킨 후 192.168.46.90/lskjdflksjdflkjsldkf 한 후 에러보기!
[root@junga ~]#
[root@junga ~]#

[root@junga ~]# ls -l /etc/httpd/conf.modules.d/        // 56줄
합계 28
-rw-r--r-- 1 root root 3739 10월 20 01:44 00-base.conf
-rw-r--r-- 1 root root  139 10월 20 01:44 00-dav.conf
-rw-r--r-- 1 root root   41 10월 20 01:44 00-lua.conf
-rw-r--r-- 1 root root  742 10월 20 01:44 00-mpm.conf
-rw-r--r-- 1 root root  957 10월 20 01:44 00-proxy.conf
-rw-r--r-- 1 root root   88 10월 20 01:44 00-systemd.conf
-rw-r--r-- 1 root root  451 10월 20 01:44 01-cgi.conf

[root@junga ~]# vi /etc/httpd/conf/httpd.conf

94 #ServerName 192.168.46.90:80

:wq

[root@junga ~]# systemctl restart httpd.service
[root@junga ~]# :
[root@junga ~]# touch /var/www/html/index.html
[root@junga ~]#
[root@junga ~]# vi /var/www/html/index.html
    Hello~!
    Nice to meet you.

:wq

// 파이어폭스> 192.168.46.90 입력 후 확인!

 

// 118줄 관련 실습(DocumentRoot)

[root@junga ~]# vi /etc/httpd/conf/httpd.conf

    101 <Directory />
    102     AllowOverride none
    103     Require all denied
    104 </Directory>

    118 DocumentRoot "/web/server/apache"
   

    123 <Directory "/web/server">

    130 <Directory "/web/server/apache">
// centos 6.x 버전대와 달리 123, 130 라인을 추가해줘야..,

 

 

 

<실습 2>

www.mybravo.com/hello 도 내용이 나오게 하기

 

[root@junga ~]# mkdir /web/server/apache/hello
[root@junga ~]#
[root@junga ~]# touch /web/server/apache/hello/index.html
[root@junga ~]#
[root@junga ~]# vi /web/server/apache/hello/index.html
[root@junga ~]#
[root@junga ~]#

// index 목록 보이게 설정
[root@junga ~]# rm -rf /web/server/apache/hello/*
[root@junga ~]#
[root@junga ~]# ls -l /web/server/apache/hello/
합계 0    

 

 

 

 

 

<실습 1>

web 에 문자 쳤을 때 위에서 한 작업처럼(httpd, /var/www/html/ ~ 글 쓴 내용이 나오도록 DNS 설정)

 

ns : mylifebravo.com

host name : www.  ← 별도로 추가

 

 

[root@junga ~]# rpm -qa |grep bind
bind-libs-9.9.4-51.el7_4.2.x86_64
bind-pkcs11-devel-9.9.4-51.el7_4.2.x86_64
keybinder3-0.3.0-1.el7.x86_64
bind-sdb-9.9.4-51.el7_4.2.x86_64
bind-devel-9.9.4-51.el7_4.2.x86_64
bind-pkcs11-libs-9.9.4-51.el7_4.2.x86_64
bind-sdb-chroot-9.9.4-51.el7_4.2.x86_64
bind-pkcs11-9.9.4-51.el7_4.2.x86_64
bind-utils-9.9.4-51.el7_4.2.x86_64
bind-license-9.9.4-51.el7_4.2.noarch
bind-libs-lite-9.9.4-51.el7_4.2.x86_64
bind-lite-devel-9.9.4-51.el7_4.2.x86_64
bind-chroot-9.9.4-51.el7_4.2.x86_64
rpcbind-0.2.0-42.el7.x86_64
bind-dyndb-ldap-11.1-4.el7.x86_64
bind-9.9.4-51.el7_4.2.x86_64
bind-pkcs11-utils-9.9.4-51.el7_4.2.x86_64
[root@junga ~]#
[root@junga ~]# vi /etc/named.conf                // (13, 19 => any;)
[root@junga ~]#
[root@junga ~]# vi /etc/named.rfc1912.zones   // (25~, 49~; 정방향, 역방향 필요 없음!!!)
[root@junga ~]#
[root@junga ~]# vi

      1 $TTL    1W      ;
      2 @       IN      SOA     ns.mylifebravo.com.     root(
      3                         2018020500      ;       serial
      4                         6H              ;       refresh(6 hours)
      5                         30M             ;       retry  (30 minutes)
      6                         1W              ;       expire (1 week)
      7                         1W              ;       minimum(1 week)
      8                         )
      9         IN      NS      ns.mylifebravo.com.
     10         IN      A       192.168.46.90
     11
     12 ns      IN      A       192.168.46.90
     13 www     IN      A       192.168.46.90        // 마지막에 추가후 named.service 재시작

: w /var/named/mylife.for.zone

[root@junga ~]#
[root@junga ~]# ls -l /var/named/mylife.for.zone
-rw-r--r-- 1 root root 249  2월  5 13:48 /var/named/mylife.for.zone
[root@junga ~]# ls -l /var/named/
합계 20
drwxr-x--- 7 root  named   61  2월  5 13:42 chroot
drwxr-x--- 7 root  named   61  2월  5 13:42 chroot_sdb
drwxrwx--- 2 named named    6  1월 22 22:30 data
drwxrwx--- 2 named named    6  1월 22 22:30 dynamic
drwxrwx--- 2 root  named    6  8월 23 22:38 dyndb-ldap
-rw-r--r-- 1 root  root   249  2월  5 13:48 mylife.for.zone
-rw-r----- 1 root  named 2281  5월 22  2017 named.ca
-rw-r----- 1 root  named  152 12월 15  2009 named.empty
-rw-r----- 1 root  named  152  6월 21  2007 named.localhost
-rw-r----- 1 root  named  168 12월 15  2009 named.loopback
drwxrwx--- 2 named named    6  1월 22 22:30 slaves
[root@junga ~]#
[root@junga ~]# cp /var/named/mylife.for.zone /var/named/mylife.rev.zone
[root@junga ~]#
[root@junga ~]# vi /var/named/mylife.rev.zone

      1 $TTL    1W      ;
      2 @       IN      SOA     ns.mylifebravo.com.     root(
      3                         2018020500      ;       serial
      4                         6H              ;       refresh(6 hours)
      5                         30M             ;       retry  (30 minutes)
      6                         1W              ;       expire (1 week)
      7                         1W              ;       minimum(1 week)
      8                         )
      9         IN      NS      ns.mylifebravo.com.
     10         IN      A       192.168.46.90
     11
    
12 90      IN      PTR     ns.mylifebravo.com.

[root@junga ~]#
[root@junga ~]# ls -l /var/named/
합계 24
drwxr-x--- 7 root  named   61  2월  5 13:42 chroot
drwxr-x--- 7 root  named   61  2월  5 13:42 chroot_sdb
drwxrwx--- 2 named named    6  1월 22 22:30 data
drwxrwx--- 2 named named    6  1월 22 22:30 dynamic
drwxrwx--- 2 root  named    6  8월 23 22:38 dyndb-ldap
-rw-r--r-- 1 root  root   249  2월  5 13:48 mylife.for.zone
-rw-r--r-- 1 root  root   257  2월  5 13:49 mylife.rev.zone
-rw-r----- 1 root  named 2281  5월 22  2017 named.ca
-rw-r----- 1 root  named  152 12월 15  2009 named.empty
-rw-r----- 1 root  named  152  6월 21  2007 named.localhost
-rw-r----- 1 root  named  168 12월 15  2009 named.loopback
drwxrwx--- 2 named named    6  1월 22 22:30 slaves
[root@junga ~]#
[root@junga ~]# chmod 660 /var/named/mylife.for.zone
[root@junga ~]# chmod 660 /var/named/mylife.rev.zone
[root@junga ~]#
[root@junga ~]# chown root:named /var/named/m*
[root@junga ~]#
[root@junga ~]# ls -l /var/named/m*
-rw-rw---- 1 root named 249  2월  5 13:48 /var/named/mylife.for.zone
-rw-rw---- 1 root named 257  2월  5 13:49 /var/named/mylife.rev.zone
[root@junga ~]#
[root@junga ~]# named-checkzone mylifebravo.com /var/named/mylife.for.zone
zone mylifebravo.com/IN: loaded serial 2018020500
OK
[root@junga ~]#
[root@junga ~]# systemctl restart named.service
[root@junga ~]#
[root@junga ~]# nslookup
> mylifebravo.com
Server:  168.126.63.1
Address: 168.126.63.1#53

** server can't find mylifebravo.com: NXDOMAIN
> exit

[root@junga ~]#
[root@junga ~]# vi /etc/resolv.conf
      3 nameserver 192.168.46.90

[root@junga ~]#
[root@junga ~]# nslookup
> mylifebravo.com
Server:  192.168.46.90
Address: 192.168.46.90#53

Name: mylifebravo.com
Address: 192.168.46.90
> exit

[root@junga ~]#
[root@junga ~]# vi /etc/httpd/conf/httpd.conf
[root@junga ~]#
[root@junga ~]# ls -l /var/www/html/
합계 4
-rw-r--r-- 1 root root 26  2월  5 13:31 index.html
[root@junga ~]#
[root@junga ~]#
[root@junga ~]# vi /var/named/mylife.for.zone
[root@junga ~]#
[root@junga ~]# systemctl restart named.service
[root@junga ~]#
[root@junga ~]# vi /etc/resolv.conf
[root@junga ~]#
[root@junga ~]# nslookup
> www.mylifebravo.com
Server:  192.168.46.90
Address: 192.168.46.90#53

Name: www.mylifebravo.com
Address: 192.168.46.90
> exit

[root@junga ~]#


 

 

 

 

 

 

 


 

DNS 복습~!!!

 

반응형
LIST

'BigData_Off1 > 리눅스2' 카테고리의 다른 글

2018.02.07-20일차 DB  (0) 2018.02.07
2018.02.06-19일차 Web Server2  (0) 2018.02.06
DNS 2(slave DNS), Web Server  (0) 2018.02.02
2018.01.30 ~ 02.02-14-17일차 DNS(개념, 실습1-4)  (0) 2018.01.30
Autofs 2(① autofs 2nd, ② 실습1)  (0) 2018.01.29
Posted by 오정oI
, |

최근에 달린 댓글

최근에 받은 트랙백

글 보관함