본문 바로가기
Base/Linux(CentOS)

20. Server (2 - Web server httpd)

by 귀멸 2022. 6. 28.

0. WEB Server
  - client에게 web page를 제공해주는 서버
     > client가 web browser 프로그램을 이용하여 web server에 접근하면
        접근한 client에게 알맞는 web page를 전송하고, client는 전송받은 페이지를 web browser에 출력
  - web page를 두 가지 종류로 구분
     1) 정적 web page : client에게 기존에 만들어 놓은 web page를 동일하게 제공
                                    > html, java script 등
     2) 동적 web page : client에게 맞춰진 web page를 만들어서 제공
                                    > JSP, PHP 등
  - web server 프로그램 중 점유율이 가장 높은건 apache
     > 여러 운영체제에서 사용 가능하여 유연성이 높다
   
  - 정보
    패키지 : httpd-*
    데몬 : httpd
    방화벽 : port=80, service=http     *https = http + ssl
    설정파일 : /etc/httpd/conf/httpd.conf

 - 설치 및 설정파일
   저번 실습 시간에서 DNS Server를 이용해 웹페이지 주소를 192.168.10.128 주소와 연결함
   파이어폭스로 접속해보면 웹서버가 없기 때문에 표출되는 페이지가 없음

   yum -y install httpd-*
   systemctl restart httpd

  웹서버 설치 후 데몬 재실행 한 뒤 다시 파이어폭스에서 접속해 보면 apache test page 표출

   [root@server named]# cd /var/www/html
   [root@server html]# echo "test page" >> index.html

   다시 파이어폭스에서 접속하면 웹페이지 출력

   설정파일 해설
   [root@server /]# vi /etc/httpd/conf/httpd.conf

   31 ServerRoot "/etc/httpd"       : 서버의 최상위 디렉토리
   41 #Listen 12.34.56.78:80       : Listen IP:port
   42 Listen 80 : Listen <port> = Listen <all IP><port>
   56 Include conf.modules.d/*.conf    : module 설정 파일 객체로 분리
   66 User apache                               : UID/ GID 권한 설정
   67 Group apache
   86 ServerAdmin root@localhost      : 서버관리자 이메일 주소
   102 <Directory />                             : 최상위 디렉토리 접근 방지
   103     AllowOverride none
   104     Require all denied
   105 </Directory>
   

   119 DocumentRoot "/var/www/html"  : 이 폴더에 index.html을 넣어줌

   163 <IfModule dir_module>                : index.html로 웹페이지를 만들어 넣는 이유
   164     DirectoryIndex index.html
   165 </IfModule>

 

1. [실습] DocumentRoot가 되는 폴더 변경해 보기
    /var/www/html/index.html 말고 다른 폴더에서 index.html 찾아 줄 수 있도록 
    Web server 설정하기
    firefox 화면에서 /var/www/html 내부가 아닌 itbank 홈 디렉토리 내부의 index.html 출력해보기

    mv /var/www/html /home/itbank index.html : 파일 이동 
    [root@server /]# vi /etc/httpd/conf/httpd.conf
    119 DocumentRoot "/var/www/html" : /home/itbank로 변경
    124 <Directory "/home">   DocumentRoot와 하위 옵션 변경
    131 <Directory "/home/itbank">
    [root@server /]# systemctl restart httpd
    chmod 701 ~itbank로 폴더 권한 변경 
    출력완료

    ** httpd 추가 설정 파일
    [root@server home]# cd /etc/httpd/conf.d
    -rw-r--r-- 1 root root 2926  3월 24 23:57 autoindex.conf
    -rw-r--r-- 1 root root  323  1월 14 02:38 manual.conf
    -rw-r--r-- 1 root root 1252  1월  8 01:08 userdir.conf
    -rw-r--r-- 1 root root  824  1월 14 02:38 welcome.conf

2. [실습] DNS / WEB Server 설정

1)  user : main
     skel : /kg/
     자동생성 디렉토리 : public_html/
     DocumentRoot : ~main/public_html/

      www.2bwithu.co.kr : 화면내용 main

2) www.2bwithu.co.kr/test1 : 화면내용 test1

3) www.2biwithu.co.kr/test1/test2 : 화면내용 test2  

4)  www.2biwithu.co.kr/~user1 : 화면내용 user1

5) www.2biwithu.co.kr/user2/ : 화면내용 user2

* 1 ~ 5까지의 문제는 순서대로 진행(무조건 1번을 최우선으로 진행 후 2,3번 -> 4,5번 순서로 진행)
  2,3번 문제는 httpd.conf 설정 파일 사용 X(hint. FQDN을 DocumentRoot로 바꿔서)
  4,5번 문제는 httpd.conf 설정 파일의 마지막 줄 참조(hint. 파일 4개 중 하나는 4번 하나는 5번과 관련)


1) 풀이
  Step1. 웹 서버 관련 세팅
  yum -y install httpd-*
  cp -r /etc/skel /kg
  mkdir /kg/public_html
  useradd -mk /kg main
  chmod 701 ~main
  vi /etc/httpd/conf/httpd.conf
  119 DocumentRoot "/home/main/public_html"
  124 <Directory "/home/main">
  131 <Directory "/home/main/public_html">
  vi /home/main/public_html/index.html    main 입력

  Step2. DNS server 관련 세팅
  yum -y install bind-*
  ... DNS server  참고!

2)3) 풀이
   119 DocumentRoot "/home/main/public_html" 이고 도메인 주소를 해당 폴더의 index.html에서
   가져가고 있으므로 "/home/main/public_html" 폴더에 test1, test2 폴더를 각각 만들어서
   그 안에 내용과 index.html 파일을 만들어 해결
   [root@server public_html]# mkdir test1
   [root@server public_html]# mkdir /test1/test2 
   [root@server public_html]# echo "dir. test1" test1/index.html
   [root@server public_html]# echo "dir. test2" test1/test2/index.html
 
4) 풀이
    [root@server conf.d]# vi userdir.conf
    17 # UserDir disabled       : 주석처리
    24    UserDir public_html   : 주석해제

<Directory "/home/*/public_html">
     AllowOverride FileInfo AuthConfig Limit Indexes
     Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
     Require method GET POST OPTIONS
</Directory>

   [root@server home]# systemctl restart httpd
   [root@server home]# useradd -mk /kg user1
   [root@server home]# chmod 711 user1
   [root@server home]# cd ~user1/public_html
   [root@server public_html]# echo "user1" >> index.html

5) 풀이 Alias

   [root@server conf.d]# vi autoindex.conf
     아래 설정 추가
  29 Alias /user2/ "/home/user2/public_html/"
  30
  31 <Directory "/home/user2/public_html">
  32     Options Indexes MultiViews FollowSymlinks
  33     AllowOverride None
  34     Require all granted
  35 </Directory>

   [root@server conf.d]# systemctl restart httpd
   [root@server conf.d]# useradd -mk /kg user2
   [root@server conf.d]# echo "user2" >> ~user2/public_html/index.html
   [root@server conf.d]# chmod 701 ~user2

  http://www.2bwithu.co.kr/user2/ 

'Base > Linux(CentOS)' 카테고리의 다른 글

22. Server (4 - phpmyadmin GUI 환경 DB 사용)  (0) 2022.07.09
21. Server (3 - DB Server mariadb)  (0) 2022.06.29
19. Server (1 - DNS)  (0) 2022.06.28
18. samba / DHCP  (0) 2022.06.28
17. NFS / autofs 네크워트 마운트 사용  (0) 2022.06.27

댓글