본문 바로가기

Computer Engineering/LINUX

LINUX#2 - Apache(2)

우리가 설치한 아파치(Apache)가 어떻게 동작하는지 알아보자.

httpd 가 메모리에 올라가서 웹서버로 동작한다. 설정파일은 httpd.conf 이 파일하나에 많은 파일이 include 되어있다. 1.3 ver ,2.0 ver, 2.2 ver  이런 버젼으로 나누어진다. 굳이 상위 버젼으로 설치할 필요는 없다. 각 버젼마다 패치, 업데이트가 이루어 지고 있다. 반드시 최신 버젼이 좋은 것은 아니다. 자신의 서버에 맞게 사용하면 되는 것이다. 2.2 ver 은 최근에 만들어져서 오히려 1.3 보다 안정성면에서 낮을 수 있다.

기존에 운영하던 사람들 말고 처음 사용하는 경우에는 최신 버젼을 쓰는 것이 좋다.

DSO 방식 동적 공유라는 방식과 Static 방식 정적 공유 방식으로 나누어지는데 요즘은 DSO 방식을 사용하고 있다. static 방식이라면 컴파일 할 때에 바로 집어 넣는 그런 방식이다. DSO 는 따로 모듈을 만들어서 libphp5.so 같은 것을 필요할 때에는 올려주기만 하면 되는것이다. 그리고 필요 없는 경우에는 언제든지 내리면 되는 것이다. 정적 모듈 방식은 속도가 느린 부분은 공유라이브러리 방식으로 아파치가 올라갈때에 같이 올라가는 것이다.

http://www.abc.co.kr 이라는 사이트가 있다고 하자. 파일을 찾아서 주는 역할밖에 안하는 것이다. 클라이언트는 파일을 달라고 요청한 것이 아니라 단순한 주소를 요청한 것이다. 아파치 서버는 document root 라는 지시어를 찾아서 거기에서 파일을 찾는다. ~~~/ 바로 밑에 있는 것을 보여 주는 것이다. 만약에 /usr/local/apache/ 밑에 있으면 보여 줄 수 없다. 

파일명을 안적었을 경우. index.htm , index.jsp 이런 식의 파일을 보여주는 것이다. default 페이지는 DirectoryIndex 라는 명령어로 index.html index.php 와 같은 파일을 찾는다.

아파치 처음 구동시 ServerName 에 대한 경고가 뜬다. ServerName 은 자신의 도메인 주소. 자신의 IP address를 안적어 주었기 때문에 적어도 localhost (127.0.0.1) 이라도 적어주어야 하는 것이다.

클라이언트가 ~/a.php 를 요청했을때 서버에서 해석해서 전달을 해주어야 될 것이다.

DB 하고 통신할 수 있는 것이 php. 전송한 파일을 아파치가 받아서 DB 로 저장해 주는 것은 php 가 하는 일이다. 웹 브라우져는 php 를 통해서 mysql 함수를 이용해서 서버에 접속할 수 있는 것이다. 아파치 서버는 db를 바로 접근을 못한다. 그래서 php, jsp 를 사용하는 것이다. c 언어로 짜면 소스도 길어지고 복잡해져서 c 언어는 별로 이용하고 있지 않고 있다. cgi 의 단점 : 서버측에 부하를 많이 준다.

아파치 가상 호스트 : 크게 두가지 1. 이름 기반 2. ip 기반 => 설정 방법은 거의 차이가 없다. 이름 기반 가상 호스트는 도메인 하나 있으면 ip도 필요한 것이다. 예를 들어 웹서에서 도메인 10개 필요하면 ip도 10개가 필요한 것이다. 1. 이름 기반은 DNS 가 반드시 필요한 것이다. 대신 ip가 부족해도 사용할 수 있다.

DocumentRoot 를 이용해서 따로 따로 구동할 수 있는 것이다.

httpd.conf 에서 118번 째 라인에  Order allow,deny =>  이 아래에 Deny from all 을 확인할 수 있다.
그래서 우리가 정해준 192.168.100.2 로 접속을 하면 Forbidden 이 뜨는 것을 볼 수 있다.

http://192.168.10.3/~web1/ => ~ 뒤에 사용자 계정을 써주는 것이다. 아파치 문법인 것이다.








 

'Computer Engineering > LINUX' 카테고리의 다른 글

LINUX#2 - IDS  (0) 2011.08.01
LINUX#2 - 방화벽  (0) 2011.07.28
LINUX#2 - Apache  (0) 2011.07.27
LINUX#2 - Logrotate  (0) 2011.07.26
LINUX#2-Log Service  (0) 2011.07.25