리눅스 httpd.conf

From CS Wiki

리눅스 아파치 웹서버의 메인 설정파일

  • 위치 : /etc/conf/httpd/httpd.conf

설정법[edit | edit source]

기본 설정[edit | edit source]

Listen 1120
ServerName webadmin.example.com:1120
DocumentRoot "/var/www/html/webadmin"
ServerAdmin [email protected]
DirectoryIndex index.php index.html index.htm
  • Listen : 사용할 포트를 지정한다.
  • ServerName : 서버의 도메인을 입력한다.
  • DocumentRoot : 웹 문서가 위치하는 디렉터리를 지정한다.
    • ServerRoot "/var/www/html", DocumentRoot "/webadmin" 으로 나눌 수도 있다.
  • ServerAdmin : 서버 관리자 이메일을 입력한다.
  • DirectoryIndex : 클라이언트가 디렉토리를 요청할때 먼저 읽히는 파일들을 지정한다.

접근 제어[edit | edit source]

<Directory "/www/ihd/admin">
  Order Deny,Allow
  Deny from All
  Allow from 192.168.2.0/24
</Directory>
  • Order : Deny와 Allow의 순서를 정한다.(Allow - Deny 순서) 블랙리스트 방식
    • Allow,Deny 또는 Deny,Allow 둘중에 하나를 적는다.
    • 최종적으로 읽히는 정책이 동작한다.
  • 위 예제의 경우 기본적으로 다 막고, 192.168.2 대역만 오픈한다.

접속 유지[edit | edit source]

KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 100
  • HTTP는 기본적으로 Stateless 프로토콜로, 페이지를 로드할때마다 새로 접속을 수립
  • KeepAlive는 이러한 특성 때문에 발생하는 부하와 속도 저하를 줄이고자 일정 시간동안 접속 유지
  • KeepAlive를 사용하면 더 빠르지만, 동시 접속량은 줄어들 수 있다.
  • KeepAliveTimeout은 언제까지 접속을 유지할지(초단위),
  • MaxKeepAliveRequests는 클라이언트와 서버 프로세스 간에 연결을 지속시키는 동안에 허용할 최대 요청 건수를 지(해당 요청 건수를 초과하면 연결을 종료)

기타[edit | edit source]

  • LimitRequestBody: 전송 가능한 최대 사이즈를 제한한다.

적용[edit | edit source]

apache 데몬(httpd)를 재시작 해주어야 한다.

$ sudo service httpd restart
// 또는
$ sudo apachectl restart
  • 다운타임 및 세션 유실을 방지하기 위한 재기동
  • 단, 모듈 추가 등 일부 작업은 적용 불가(재시작 필요)
$ sudo httpd -k graceful