Apache Install#

Apache 참고 URL#

prechild에대한 설명
http://httpd.apache.org/docs/2.0/mod/perchild.html
http://uzoogom.textcube.com/146

아파치2 mpm에 대한 설명
http://blog.naver.com/jacktwo/100060150128
http://susukang98.springnote.com/pages/983798

아파치 dso, static 방식의 설명
http://blog.blueweb.co.kr/119
http://ti.kangjang.net/13
http://www.koreaidc.com/bbs/set_view.php?b_name=idcpds&w_no=94&page=1

아파치 원격 로그 서버 구축
http://www.koreaidc.com/bbs/set_view.php?b_name=idcpds&w_no=91&page=1

아파치 성능 테스트
http://profiles.kr/tag/apache

아파치 subversion연동에대한 설명
http://www.onurmark.co.kr/134

아파치 보안#

httpd.conf 에 설정

ServerSignature Off
ServerTokens ProductOnly

아파치 폴더와 파일 퍼미션 설정#

  • 디렉토리 퍼미션 : 755
  • 디렉토리 퍼미션 일괄 적용(하위폴더 포함)
find . -type d -exec chmod 755 {} \;
  • 파일의 퍼미션 : 644
  • 파일 퍼미션 일괄 적용(하위폴더 포함)
find . -type f -exec chmod 644 {} \;

apache ssl설정#

SSL 참고 사이트 #

mod_ssl 설치#

* 컴파일설치시 옵션
--enable-ssl --with-ssl=/usr/local/ssl
* apxs를 이용한 모듈 추가
/usr/local/apache2/bin/apxs -i -a -c 아파치소스폴더/modules/ssl/mod_deflate.c    

key 파일 생성#

openssl genrsa 1024 > xxx.co.kr.key

csr 코드 생성#

openssl req -new -key xxx.co.kr.key -out xxx.co.kr.csr

Country(국가 코드) : KR
State/Province(시/도의 전체 이름 : Seoul
Locality(시,구,군 등의 이름) : Sechou
Organization(회사이름) : xxxxxxxx
Organization Unit(부서명) : xxxxxx
Common Name (host name + domain name) : www.xxx.co.kr
Email Address (이메일):admin@linkbp.com

A challenge password (비밀번호) : xxxx
An optional company name [] : 넘어감

crt 파일 생성#

원래는 인증기관에 요청하여 ca 인증을 해야 한다.

인증기관을 이용하지 않는다면 openssl을 이용하여 직접 인증을 하면 된다.  (self-signed)

openssl x509 -req -days 365 -in xxx.co.kr.csr -signkey xxx.co.kr.key -out xxx.co.kr.crt

self 인증을 한경우 브라우져에서 사용자에게 인증서를 묻게 된다.

아파치 설정#

mkdir /usr/local/apache2/certificate
mv xxx.co.kr.csr xxx.co.kr.key xxx.co.kr.crt /usr/local/apache2/certificate
cd /usr/local/apache2/certificate

vi /usr/local/apache2/conf/ssl.conf
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
<VirtualHost *:80>
    ServerAdmin admin@xxx.co.kr
    DocumentRoot /home/xxx.co.kr/www
    ServerName xxx.co.kr
    ErrorLog logs/xxx.co.kr-error_log
    CustomLog logs/xxx.co.kr-access_log common

    SSLCertificateFile /usr/local/apache2/certificate/xxx.co.kr.crt

    SSLCertificateKeyFile /usr/local/apache2/certificate/xxx.co.kr.key

    기본설정은 건들이지 않는다.
    ....
</VirtualHost>


<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

환경설정 확인
/usr/local/apache2/bin/apachectl -t
/usr/local/apache2/bin/apachectl stopssl
/usr/local/apache2/bin/apachectl startssl

80번 포트로 접속시 443으로 넘기는 설정#

RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]

실행파일 변경#

start 명령어 실행시 $HTTPD -k start -DSSL 명령어가 실행되도록변경
/etc/init.d/httpd
/usr/local/apache2/bin/apachectl

apache 압축#

설치#

* 컴파일설치시 옵션
--enable-deflate  --enable-headers 
* apxs를 이용한 모듈 추가
/usr/local/apache2/bin/apxs -i -a -c 아파치소스폴더/modules/filters/mod_deflate.c    
/usr/local/apache2/bin/apxs -i -a -c 아파치소스폴더/modules/metadata/mod_headers.c

환경 설정#

http://httpd.apache.org/docs/2.2/ko/mod/mod_deflate.html 사이트 참고

    AddOutputFilterByType DEFLATE text/html text/plain text/xml

    # 필터를 추가한다
    SetOutputFilter DEFLATE

    # Netscape 4.x에 문제가 있다...
    BrowserMatch ^Mozilla/4 gzip-only-text/html

    # Netscape 4.06-4.08에 더 문제가 있다
    BrowserMatch ^Mozilla/4\.0[678] no-gzip

    # MSIE은 Netscape라고 자신을 알리지만, 문제가 없다
    # BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

    # 주의: 아파치 2.0.48까지 mod_setenvif의 버그때문에
    # 위의 정규표현식은 동작하지 않는다. 원하는 효과를
    # 얻기위해 다음과 같이 수정하여 사용한다:
    BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html

    # 이미지를 압축하지 않는다
    SetEnvIfNoCase Request_URI \
    \.(?:gif|jpe?g|png)$ no-gzip dont-vary

    # 프록시가 잘못된 내용을 전달하지않도록 한다
    Header append Vary User-Agent env=!dont-vary

Add new attachment

Only authorized users are allowed to upload new attachments.
« This page (revision-) was last changed on 17-5월-2021 01:15 by UnknownAuthor