You cannot see this page without javascript.

CentOS (5.x, 6.x) - Apache Web Server 2.4

Linux 조회 수 692 추천 수 0 2014.06.26 21:59:56

CentOS (5.x, 6.x)에서 Apache Web Server 2.4.x 설치 하기 (vm 호환)

1. Overview

최근 세계에서 제일 많이 사용하는 웹 서버인 “Apache Web Server“가 6년만에 “2.4 Majaor Version
이 출시 되었습니다.
아무래도 오랜 기간에 걸친 업데이트라서 많은 새로운 기능들이 있지만,  2개로 축약 하자면,
low latency (요청은 많고, 처리시간은 짧은)” 와 “cloud” 입니다.

클라우드 환경에 맞게 대량의 데이터를 처리 하기 위한 “가용성” 과 이에 따른 “리소스 최적화”
라고 할수 있습니다.

개인적으로는 최근 엄청 인기를 얻고 있는 “엔진엑스(nGinx)“의 출현으로 인한 약간의 위기감이
아닐까 하는 생각도 듭니다.
해외 조사 자료를 보면, 여전히 “Apache Webserver“가 압도적으로 많이 쓰지만, 그건 기존에 대한
구축이 되어 있어서 입니다. 어떤 자료를 볼때 현 지표를 보는 것보다 추세를 파악하는게 더 중요합니다.

이런 맥락에서 “엔진엑스“는 현재 상승세이고 “Apache Webserver‘는 소폭 상승의 곡선을 그리고 있습니다.
여전히 비교가 안되지만, 요즘 트렌드는 한방에 역전 되기 때문에 긴장을 할수 밖에 없다고 생각 합니다.

001.png


파랑색 (Apache Webserver), 녹색 (nGinx)

현재 제가 진행하는 프로젝트는 두 개의 웹서버를 사용중입니다. 제가 있는 쪽은 “웹 어플리케이션
파트에 있다 보니 “low latency” 케이스가 드물어서 “Apache Webserver”를 사용중이고,
다른 파트는 “low latency“에 대량의 데이터를 처리해야 하기 때문에 “nginx“를 사용하고 있습니다.

좀더 “Apache 2.4.x“의 기능을 알고 싶은 분은 아래의 사이트를 참고 하시면 좋을 것 같습니다.

http://itviewpoint.com/209125

2. 설치 하기

Apache의 코어 라이브러리는 “APR (Apache Portable Runtime)” 입니다.
실제로 ARP은 “공유 메모리 관리, 소켓 I/O 관리, File I/O 관리등” row level을 핸드링하는
라이브러리 입니다.

002.png


현재 “CentOS 6.x“는 APR 버전이 “1.3.x“를 사용하고 있습니다. 하지만 “Apache 2.4.x
버전은 “APR 1.4.x“를 사용하고 있기 때문에 업그레이드를 하거나 별도 설치를 해야 합니다.
그리고 의존하는 라이브러리들도 존재를 합니다.

그래서 막상 설치를 하면 약간 삽질이 필요 합니다.  다행히 해외에 잘 정리된 문서가 있어서
도움을 받아서 설치를 했습니다.

(1) 기존 “Apache Webserver” 제거

1
2
3
4
5
6
[root@beyondj2ee bin]# ps -ef | grep httpd
[root@beyondj2ee bin]# /etc/rc.d/init.d/httpd stop
[root@beyondj2ee bin]# yum remove -q httpd
[root@beyondj2ee bin]# find / -name apachectl
※ usr/local/apache/bin/apachectl 설치된 경우
[root@beyondj2ee bin]# rm -rf /usr/local/apache

(2)  “Apache Webserver” 최신버전 받기

1
2
3
[root@beyondj2ee bin]# cd /usr/local/src/
[root@beyondj2ee bin]# tar -jxf httpd-2.4.2.tar.bz2

(3) “APR” 설치 하기

1
2
3
4
5
6
7
[root@beyondj2ee bin]# cd /usr/local/src/httpd-2.4.2/srclib
[root@beyondj2ee bin]# tar -jxf apr-1.4.6.tar.bz2
[root@beyondj2ee bin]# tar -jxf apr-util-1.4.1.tar.bz2
[root@beyondj2ee bin]# mv apr-1.4.6 apr
[root@beyondj2ee bin]# mv apr-util-1.4.1 apr-util

(4)  Dependency 라이브러리 설치

1
[root@beyondj2ee bin]# yum install apr-devel apr-util-devel gcc pcre-devel.x86_64 zlib-devel openssl-devel

(5) 설치 하기

1
2
3
4
5
[root@beyondj2ee bin]# cd /usr/local/src/httpd-2.4.2
※ mpm 옵션을 주지 않으면 기본 설정은 "event" 방식 입니다. --with-mpm=worker, --with-mpm=prefork
※ 만약 모든 mpm 옵션을 동적으로 설정하고 싶으면 "--enable-mpms-shared=all" 옵션을 추가 하면 됩니다.
[root@beyondj2ee bin]# ./configure --prefix=/usr/local/apache --enable-mods-shared=most --enable-ssl --with-ssl=/usr/local/openssl --enable-modules=ssl --enable-rewrite --with-included-apr --with-included-apr-util --enable-deflate --enable-expires --enable-headers --enable-proxy --enable-mpms-shared=all
[root@beyondj2ee bin]# make;make install

(6) 확인 하기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
[root@beyondj2ee bin]# /usr/local/apache/bin/httpd -V
Server version: Apache/2.4.2 (Unix)
Server built:   Jul  6 2012 02:47:22
Server's Module Magic Number: 20120211:3
Server loaded:  APR 1.4.6, APR-UTIL 1.4.1
Compiled using: APR 1.4.6, APR-UTIL 1.4.1
Architecture:   64-bit
Server MPM:     event
  threaded:     yes (fixed thread count)
    forked:     yes (variable process count)
Server compiled with....
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_SYSVSEM_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D DYNAMIC_MODULE_LIMIT=256
 -D HTTPD_ROOT="/usr/local/apache"
 -D SUEXEC_BIN="/usr/local/apache/bin/suexec"
 -D DEFAULT_PIDLOG="logs/httpd.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="conf/mime.types"
 -D SERVER_CONFIG_FILE="conf/httpd.conf"
[root@beyondj2ee bin]# /usr/local/apache/bin/apachectl -l
Compiled in modules:
  core.c
  mod_so.c
  http_core.c
  event.c
[root@beyondj2ee bin]# /usr/local/apache/bin/apachectl start
[root@beyondj2ee bin]# ps -ef | grep httpd
root     30300     1  0 03:19 ?        00:00:00 /usr/local/apache/bin/httpd -k start
daemon   30302 30300  0 03:19 ?        00:00:00 /usr/local/apache/bin/httpd -k start
daemon   30304 30300  0 03:19 ?        00:00:00 /usr/local/apache/bin/httpd -k start
daemon   30306 30300  0 03:19 ?        00:00:00 /usr/local/apache/bin/httpd -k start
daemon   30308 30300  0 03:19 ?        00:00:00 /usr/local/apache/bin/httpd -k start
daemon   30309 30300  0 03:19 ?        00:00:00 /usr/local/apache/bin/httpd -k start
root     30819 29115  0 03:19 pts/3    00:00:00 grep httpd

(7) 로드 모듈 리스트

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
LoadModule authn_file_module modules/mod_authn_file.so
#LoadModule authn_dbm_module modules/mod_authn_dbm.so
#LoadModule authn_anon_module modules/mod_authn_anon.so
#LoadModule authn_dbd_module modules/mod_authn_dbd.so
#LoadModule authn_socache_module modules/mod_authn_socache.so
LoadModule authn_core_module modules/mod_authn_core.so
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
LoadModule authz_user_module modules/mod_authz_user.so
#LoadModule authz_dbm_module modules/mod_authz_dbm.so
#LoadModule authz_owner_module modules/mod_authz_owner.so
#LoadModule authz_dbd_module modules/mod_authz_dbd.so
LoadModule authz_core_module modules/mod_authz_core.so
LoadModule access_compat_module modules/mod_access_compat.so
LoadModule auth_basic_module modules/mod_auth_basic.so
#LoadModule auth_form_module modules/mod_auth_form.so
#LoadModule auth_digest_module modules/mod_auth_digest.so
#LoadModule allowmethods_module modules/mod_allowmethods.so
#LoadModule file_cache_module modules/mod_file_cache.so
#LoadModule cache_module modules/mod_cache.so
#LoadModule cache_disk_module modules/mod_cache_disk.so
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
#LoadModule socache_dbm_module modules/mod_socache_dbm.so
#LoadModule socache_memcache_module modules/mod_socache_memcache.so
#LoadModule watchdog_module modules/mod_watchdog.so
#LoadModule dbd_module modules/mod_dbd.so
#LoadModule dumpio_module modules/mod_dumpio.so
#LoadModule echo_module modules/mod_echo.so
#LoadModule buffer_module modules/mod_buffer.so
#LoadModule data_module modules/mod_data.so
#LoadModule ratelimit_module modules/mod_ratelimit.so
LoadModule reqtimeout_module modules/mod_reqtimeout.so
LoadModule ext_filter_module modules/mod_ext_filter.so
#LoadModule request_module modules/mod_request.so
#LoadModule include_module modules/mod_include.so
LoadModule filter_module modules/mod_filter.so
#LoadModule reflector_module modules/mod_reflector.so
#LoadModule substitute_module modules/mod_substitute.so
#LoadModule sed_module modules/mod_sed.so
#LoadModule charset_lite_module modules/mod_charset_lite.so
LoadModule deflate_module modules/mod_deflate.so
LoadModule mime_module modules/mod_mime.so
LoadModule log_config_module modules/mod_log_config.so
#LoadModule log_debug_module modules/mod_log_debug.so
#LoadModule log_forensic_module modules/mod_log_forensic.so
#LoadModule logio_module modules/mod_logio.so
LoadModule env_module modules/mod_env.so
#LoadModule mime_magic_module modules/mod_mime_magic.so
#LoadModule expires_module modules/mod_expires.so
LoadModule headers_module modules/mod_headers.so
LoadModule usertrack_module modules/mod_usertrack.so
LoadModule unique_id_module modules/mod_unique_id.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule version_module modules/mod_version.so
#LoadModule remoteip_module modules/mod_remoteip.so
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
#LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
#LoadModule proxy_scgi_module modules/mod_proxy_scgi.so
#LoadModule proxy_fdpass_module modules/mod_proxy_fdpass.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
#LoadModule proxy_express_module modules/mod_proxy_express.so
LoadModule session_module modules/mod_session.so
#LoadModule session_cookie_module modules/mod_session_cookie.so
#LoadModule session_dbd_module modules/mod_session_dbd.so
LoadModule slotmem_shm_module modules/mod_slotmem_shm.so
LoadModule slotmem_plain_module modules/mod_slotmem_plain.so
LoadModule ssl_module modules/mod_ssl.so
#LoadModule dialup_module modules/mod_dialup.so
LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so
#LoadModule lbmethod_bytraffic_module modules/mod_lbmethod_bytraffic.so
#LoadModule lbmethod_bybusyness_module modules/mod_lbmethod_bybusyness.so
#LoadModule lbmethod_heartbeat_module modules/mod_lbmethod_heartbeat.so
LoadModule unixd_module modules/mod_unixd.so
#LoadModule heartbeat_module modules/mod_heartbeat.so
#LoadModule heartmonitor_module modules/mod_heartmonitor.so
#LoadModule dav_module modules/mod_dav.so
LoadModule status_module modules/mod_status.so
LoadModule autoindex_module modules/mod_autoindex.so
#LoadModule asis_module modules/mod_asis.so
#LoadModule info_module modules/mod_info.so
#LoadModule cgid_module modules/mod_cgid.so
#LoadModule dav_fs_module modules/mod_dav_fs.so
#LoadModule dav_lock_module modules/mod_dav_lock.so
LoadModule vhost_alias_module modules/mod_vhost_alias.so
#LoadModule negotiation_module modules/mod_negotiation.so
LoadModule dir_module modules/mod_dir.so
#LoadModule actions_module modules/mod_actions.so
#LoadModule speling_module modules/mod_speling.so
LoadModule userdir_module modules/mod_userdir.so
LoadModule alias_module modules/mod_alias.so
LoadModule rewrite_module modules/mod_rewrite.so

(8) 튜닝 하기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[root@beyondj2ee extra]# vi /usr/local/apache/conf/httpd.conf
# 주석 해제
Include conf/extra/httpd-mpm.conf
[root@beyondj2ee extra]# vi /usr/local/apache/conf/extra/httpd-mpm.conf
<IfModule mpm_event_module>
   ThreadLimit            100
   StartServers           5
   MaxRequestWorkers     5500
   ServerLimit           200
   MinSpareThreads        100
   MaxSpareThreads     1000
   ThreadsPerChild       100
   MaxRequestsPerChild    0
</IfModule>
003.png


첨부
엮인글 :
List of Articles
번호 제목 글쓴이 날짜sort 조회 수
369 Windows7 OEM을 활용하여 클린설치 file [11] LynX 2010-11-06 765
368 Windows7 에서 시스템을 백업/복원하는 가장 쉬운 방법!! file LynX 2010-11-07 334
367 탐색기 메뉴에 '명령 프롬프트 열기'와 '메모장으로 열기' 추가하기 file [14] LynX 2010-11-08 591
366 인터넷 익스플로러 리플레쉬 file LynX 2011-05-02 286
365 활성 네트워크 중복으로 인한 인터넷 연결 안되는 문제 file [12] LynX 2011-05-26 971
364 32bit Driver을 64bi로 설치하기 [8] LynX 2011-06-21 325
363 설치파일(inf)에 대한 이해 [7] LynX 2011-06-22 598
362 inf 설치시 경고창 안뜨게 하기 file [10] LynX 2011-06-22 430
361 로우 포맷(Low level format, 저수준 포맷) 하기 file [11] LynX 2011-07-06 722
360 Win XP Crack file [8] LynX 2011-10-31 269
359 윈도우7 메모리 인식 문재 file [13] LynX 2011-11-30 530
358 RoundCube 첨부 용량 변경 / 한글 수정 [10] LynX 2012-01-31 836
357 윈도우7 알수없는장치 file [8] LynX 2012-03-13 270
356 디지털 서명 file [1] LynX 2012-03-15 445
355 아레한글 사용시 출력물에 음영이 나타나는 현상. file [11] LynX 2012-03-29 1154
354 Xyview DVR서버 연결 [8] LynX 2012-04-19 295
353 HP Officejet 6500A (Plus) 호환 드라이버 [8] LynX 2012-05-16 294
352 IIS에 FastCgi모듈 활성화 시키기 file [12] LynX 2012-11-21 1283
351 윈도우 2008서버에 XE 설치 절차 [9] LynX 2012-11-22 230
350 Windows Server 2012 설치 file LynX 2012-11-23 477

XE Login