At line 1 added 189 lines |
[{TableOfContents}] |
|
|
!!!Apache Install |
*[리눅스(fedora, centos)에 아파치 컴파일 설치 방법|Apache_Install_Linux] |
*[리눅스(fedora, centos)에 아파치로그 분석 Awstats 설치 방법|Awstats_Install_Linux] |
|
|
!!!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 참고 사이트 |
* [http://kldp.org/HOWTO/html/SSL-RedHat-HOWTO/ssl-redhat-howto-1.html] |
* [한국 정보 보호 진흥원|http://www.kisa.or.kr] |
* [http://www.lisia21.net/~hoya/study/linux/apache_ssl.html] |
* [http://www.anycert.co.kr/support/4_1ssl_install_cer01_2.html] |
|
! 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 |
}}} |