분류 목록

    분류 전체보기 (1493)
    남식이의 생활 이야기 (149)
    유용한 정보<휴대폰> (668)
    유용한 정보<컴퓨터> (633)
    유용한 정보<기타> (43)

웹서버 최적화를 완료했습니다.

 필자가 운영중인 아톰 홈서버(웹서버)(새창)의 최적화를 금일 완료하였습니다.
 이 포스트에서는 Windows 최적화, APM 최적화에 대해서 소개하고 있으며, 이 포스트의 내용 중 궁금한 것이 있으시면 댓글로 남겨주시면 성심 성의껏 답변해드리겠습니다.


Windows의 서비스 최적화

Net Runtime Optimization Service v2.0.50727_x86
Alerter
ASP.NET Sate Service
ClipBook
Computer Browser
Distributed Link Tracking Server
Error Reporting Service
File Replication
Help and Support
HTTP SSL
Human Interface Device Access
IMAP CD-Burning COM Service
Indexing Service
Intersite Messaging
Java Quick Starter
Kerberos Key Distribution Center
License Logging
Messenger
Microsoft Software Shadow Copy Provider
Net. TCP Port Sharing Service
NetMeeting Remote Desktop Sharing
Network DDE
Network DDE DSDM
Portable Media Serial Number Service
Protected Storage
Remote Registry
Removable Storage
Routing and Remote Access
Secondary Logon
Smart Card
SNMP Trap Service
Special Administration Console Helper
System Event Notification
Telephony
Telnet
Termial Services Session Directory
Theme (Luna[루나] 테마를 사용할 수 없습니다.)
Uninterruptible Power Supply
Volume Shadow Copy
WebClient
Windows Audio (사운드 기능을 사용할 수 없습니다.)
Windows CardSpace
Windows Firewall/Internet Connection Sharing (ICS)
Windows Management Instrumentation Driver Extensions
Windows Presentation Foundation Font Cache 3.0.0.0
Windows User Mode Driver Framework
Windows Time
WinHTTP Web Proxy Auto-Discovery Service
Wireless Configuration
 상단의 회색박스에 첨부된 항목은 홈서버(웹서버)에서는 사용하지 않는 항목입니다. 필자가 소개하는 내용을 제어판→관리도구→서비스에서 사용안함으로 설정하신 후 사용하시면 되며, 소개하는 서비스 중 일부는 귀하의 홈서버(웹서버)의 운영에 무리를 줄 수 있으므로 잘 확인하신 후 적용하는 것을 권해드립니다. 필자의 경우에는 위의 항목을 적용하여 오랜시간동안 운영을 했지만 별다른 불편함을 느끼지 못했습니다.
 Windows Theme 기능을 사용안함으로 변경하시면 Luna를 비롯한 각종 테마를 사용할 수 없으며, Windows Audio 기능을 사용안함으로 변경하시면 사운드 기능을 사용할 수 없습니다.


Apache 웹서버 최적화

1. 세션관리
PidFile E:/temp/apache/httpd.pid
Timeout 5
KeepAlive On
KeepAliveTimeout 2
MaxKeepAliveRequests 100
UseCanonicalName Off
ServerTokens Full
ServerSignature Off
HostnameLookups Off

2. 사용모듈 로드
LoadModule actions_module modules/mod_actions.so
LoadModule alias_module modules/mod_alias.so
LoadModule asis_module modules/mod_asis.so
LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule authn_default_module modules/mod_authn_default.so
LoadModule authn_file_module modules/mod_authn_file.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule authz_default_module modules/mod_authz_default.so
LoadModule autoindex_module modules/mod_autoindex.so
LoadModule dir_module modules/mod_dir.so
LoadModule deflate_module modules/mod_deflate.so
LoadModule env_module modules/mod_env.so
LoadModule expires_module modules/mod_expires.so
LoadModule headers_module modules/mod_headers.so
LoadModule imagemap_module modules/mod_imagemap.so
LoadModule include_module modules/mod_include.so
LoadModule isapi_module modules/mod_isapi.so
LoadModule mime_module modules/mod_mime.so
LoadModule negotiation_module modules/mod_negotiation.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule unique_id_module modules/mod_unique_id.so

3. 에러 검사안함
Redirect 404 /favicon.ico
Redirect 404 /MarkAny/Websafer/MaSiteInfo.ini
 필자가 소개하는 Apache 웹서버의 최적화 내용은 httpd.conf를 수정하시는 것입니다. 우선, 기타 설정 항목의 KeepAlive는 일정시간이 지난 이후에 서버와의 접속이 끊어지도록하여 Apache의 무거움을 최소화 시켜주는 기능입니다. 해외 접속자가 많은 경우에는 KeepAliveTimeout을 10초정도로 지정하여 사용하는 것을 권장합니다. 더불어, Timeout은 사용자가 게시물을 읽고 있을 때도 서버에서 있도록 해줄 것인지에 관해서 설정하는 부분입니다. 물론, 이 부분도 해외 접속자가 많은 경우에는 10초정도로 지정하여 사용하는 것을 권장합니다. 이외의 항목은 가장 기본적인 항목들이며, 사용모듈의 경우에는 불러들이는 모듈을 최소화하여 시스템을 최대한 가볍게 동작할 수 있는 조건을 만들었습니다. 위의 항목들만 적용하셔도 제로보드XE, 텍스트큐브등의 사용시 로딩 속도의 향상을 누릴 수 있었습니다.
 에러 검사항목은 사용자의 선택입니다. 필자의 경우에는 홈서버로 호스팅을 해주다보니, favicon.ico 에러가 많이 발생하여 추가한 후 사용중이지만 개인적인 사용이라면 크게 문제될 것은 아니라고 생각됩니다.


Apache 웹서버 메모리 반환

 끝도 없이 올라가는 httpd.exe의 사용량을 조절하기 위해서는 사용자가 많지 않은 시간대에 httpd.exe를 재시작해주는 정지한 후 다시 시작해주는 방법을 권장합니다. 자세한 사항은 링크된 포스트를 참고하시기 바랍니다. 예약된 작업과 같은 기능은 다른 프로그램을 이용하여 해당 응용프로그램이 지정한 메모리의 사용량을 초과했을 때 실행되도록 해주는 프로그램도 존재하니 참고하여 이용하시기 바랍니다.


PHP 최적화

1. 서버의 타이머 설정
max_execution_time = 30
max_input_time = -1

2. 안전모드 및 함수 조절
safe_mode = Off
safe_mode_gid = Off
safe_mode_allowed_env_vars = PHP_
safe_mode_protected_env_vars = LD_LIBRARY_PATH
expose_php = Off
disable_functions = shell_execc,passthru,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source

3. 첨부파일 용량 향상
max_execution_time = 0
max_input_time = 0
memory_limit=20M
post_max_size=2047M
upload_max_filesize=2047M

4. 플러그인 설정
extension=php_mbstring.dll
extension=php_exif.dll
extension=php_gd2.dll
extension=php_gettext.dll
extension=php_mcrypt.dll
extension=php_mysql.dll
extension=php_mysqli.dll
 필자가 사용중인 PHP 최적화의 경우 혼자서 사용한다는 가정하에 만들어졌습니다. 첨부파일의 경우 최대 2048M(2GB)까지 첨부가 가능하지만 웹서버의 혼동을 방지하기 위해서 최대 2047M(1.99GB)까지 업로드를 할 수 있도록 설정을 해두었습니다. 물론, 이 정도의 파일은 게시물로 게시할 일이 없습니다. 더불어, 플러그인은 가장 기본적인 항목인 gd2를 비롯한 mysql등만 로드하도록 설정하였습니다. 위의 설정값으로 제로보드XE, 텍스트큐브와 같은 설치형 서비스의 설치 및 사용에 전혀 문제가 되지 않습니다. 필요시에는 extension=을 추가로 만들어서 플러그인을 추가해주시면 됩니다.
 만약, 다른 분들에게도 계정을 나누어줄 예정이라면 첨부파일의 최대 용량을 적절하게 조절하시기 바랍니다.
 일부 헤비급 사용자는 최대 용량을 매우 크게 잡는 경향이 있습니다.

MySQL 최적화

1. 이전 버젼 연동 (주석처리)
#old_passwords=1
#connect_timeout = 10

2. 인덱스 버퍼 크기 조절
key_buffer = 8M
 이 항목의 경우에는 이전 버젼 연동에 관한 항목을 주석처리하여 보안을 향상시켰으며, 인덱스 버퍼 크기를 조절함으로써, MySQL의 효율성을 높여주었습니다. 물론, 위의 설정값은 가장 기본적인 설정값이며, MySQL의 경우 서버의 성능에 많은 영향을 주지 않으므로 설정할 수 있는 옵션이 많지 않은 편입니다.
신고

의견을 남겨 주세요

Powerd by Tistory, designed by criuce, modify by Namsik's Story
rss
TOP