블로그 이미지
OSSW(Open Source System SoftWare

calendar

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        

Notice

Name-Based VirtualHosts and SSL

하나의 Apache 웹서버에 동일한 포트로 다양한 SSL을 사용하는 서비스를 하기 위해서는 다음과 같은 방법을 사용하면 됩니다.

1. 가상호스 사용
    - ServerName을 달리 설정한다. 
    - 각 가상호스트마다 SSL 인증서를 설정한다.

2. NameVirtualHost 지시어 사용

설정 예제 참고하십시오.
Listen 192.168.1.1:443

LoadModule ssl_module   modules/mod_ssl.so

SSLPassPhraseDialog     builtin
AcceptMutex             flock
SSLSessionCache         shmcb:/var/cache/httpd/mod_ssl/ssl_scache(512000)
SSLSessionCacheTimeout  300
SSLMutex                default
SSLRandomSeed           startup /dev/urandom  256
SSLRandomSeed           connect builtin

NameVirtualHost 192.168.1.1:443

<VirtualHost 192.168.1.1:443>
        SSLEngine on
        SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP

        SSLCertificateFile      /etc/ssl/star.example.com.crt
        SSLCertificateKeyFile   /etc/ssl/star.example.com.key

        ServerName      "one.example.com"
        DocumentRoot    "/var/www/html/one"

        CustomLog       "/var/log/httpd/one-access.log" combined
        ErrorLog        "/var/log/httpd/one-error.log"

        <Directory /var/www/html>
                AllowOverride none

                Order Allow,Deny
                Allow from all
        </Directory>
</VirtualHost>

<VirtualHost 192.168.1.1:443>
        SSLEngine on
        SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP

        SSLCertificateFile      /etc/ssl/star.example.com.crt
        SSLCertificateKeyFile   /etc/ssl/star.example.com.key

        ServerName      "two.example.com"
        DocumentRoot    "/var/www/html/two"

        CustomLog       "/var/log/httpd/two-access.log" combined
        ErrorLog        "/var/log/httpd/two-error.log"

        <Directory /var/www/html>
                AllowOverride none

                Order Allow,Deny
                Allow from all
        </Directory>
</VirtualHost>

by hyeons 1월

'1. 미들웨어이야기 > 02. Apache' 카테고리의 다른 글

Apache Name-Based VirtualHosts and SSL  (0) 2015.01.06
apache redirectmatch  (0) 2014.12.03
Apache 로그 파일 관리  (0) 2014.12.03
Apache 설치  (0) 2014.12.03
알아두면 유용한 apache httpd실행 옵션  (0) 2014.12.03
apache graceful restart  (0) 2014.12.03
posted by lovelywas

아파치에서 설정한 도메인으로 접속한 모든 사용자에 대해 

모두 특정 url로 보내고 싶을때(서비스 잠시 문닫아 서비스 안내공지 페이지로 보낸다던가...)

RedirectMatch 옵션을 사용할 수 있습니다.


RedirectMatch (.*) http://aaa.com/pp.html




이와는 약간 다르게...뒤에 주소를 그대로 가지고 가면서 도메인만 변경되는 경우

도메인이 변경되어 뒤에 주소는 동일하나 도메인만 변경된 주소로 변경하여 Redirect 시킬 경우


Redirect http://aaa.com


'1. 미들웨어이야기 > 02. Apache' 카테고리의 다른 글

Apache Name-Based VirtualHosts and SSL  (0) 2015.01.06
apache redirectmatch  (0) 2014.12.03
Apache 로그 파일 관리  (0) 2014.12.03
Apache 설치  (0) 2014.12.03
알아두면 유용한 apache httpd실행 옵션  (0) 2014.12.03
apache graceful restart  (0) 2014.12.03
posted by LE07

 

*  Apache 로그 파일 관리

 

1. 로그 rotation 적용

 - 설명 : 아파치 rotatelogs를 이용하여 일자별 로그 생성

 - 설정방법 :  CustomLog "/usr/sbin/rotatelogs logs/access_%Y%m%d.log 86400" common


2. 로그 포맷 변경

- 설명 : 아파치 로그 출력을 아래의 항목으로 변경

- 설정방법 : LogFormat "%h - %t \"%r\" %s>s %b" common

항목

설명 

%A (지역화된) 완전한 요일 이름
%a (지역화된) 3-문자 요일 이름
%B (지역화된) 완전한 달 이름
%b (지역화된) 3-문자 달 이름
%c (지역화된) 날짜와 시간
%d 2-자리 일
%H 2-자리 시간 (24 시간 시계)
%I 2-자리 시간 (12 시간 시계)
%j 3-자리 날짜수
%M 2-자리 분
%m 2-자리 달
%p (지역화된) 12 시간 시계의 am/pm
%S 2-자리 초
%U 2-자리 주일수 (주의 첫번재 날은 일요일)
%W 2-자리 주일수 (주의 첫번재 날은 월요일)
%w 1-자리 요일수 (주의 첫번째 날은 일요일)
%X (지역화된) 시간
%x (지역화된) 날짜
%Y 4-자리 연도
%y 2-자리 연도
%Z 시간대 이름
%% 문자그대로 `%'

 

 

by. 현주희 (11월)

 

'1. 미들웨어이야기 > 02. Apache' 카테고리의 다른 글

Apache Name-Based VirtualHosts and SSL  (0) 2015.01.06
apache redirectmatch  (0) 2014.12.03
Apache 로그 파일 관리  (0) 2014.12.03
Apache 설치  (0) 2014.12.03
알아두면 유용한 apache httpd실행 옵션  (0) 2014.12.03
apache graceful restart  (0) 2014.12.03
posted by DB,MW,OS OSSW(Open Source System SoftWare

 


* Apache 설치

 

설치 및 운영을 위한 계정(apache) 구성

apache@a-virtual-machine:~$ id

uid=1003(apache) gid=1003(apache) 그룹들=1003(apache)

 

apache@a-virtual-machine:~$ pwd

/apache

 

apache@a-virtual-machine:~$ vi .profile

# ~/.profile: executed by the command interpreter for login shells.

# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login

# exists.

# see /usr/share/doc/bash/examples/startup-files for examples.

# the files are located in the bash-doc package.

 

# the default umask is set in /etc/profile; for setting the umask

# for ssh logins, install and configure the libpam-umask package.

#umask 022

 

# if running bash

if [ -n "$BASH_VERSION" ]; then

    # include .bashrc if it exists

    if [ -f "$HOME/.bashrc" ]; then

             . "$HOME/.bashrc"

    fi

fi

 

# set PATH so it includes user's private bin if it exists

if [ -d "$HOME/bin" ] ; then

    PATH="$HOME/bin:$PATH"

fi

 

#### Edit ENV ####

set -o vi

stty erase ^H

alias ll='ls -l'

 

 

### Apache alias ###

alias webstart='/apache/apache-2.2.21/bin/apachectl start'

alias webstop='/apache/apache-2.2.21/bin/apachectl stop'

alias alog='cd /ap_log'

alias acfg='cd /apache/apache-2.2.21/conf'

 

export TMOUT=0

 


 

 

apache 2.2.21 설치

1. apache 2.2.21 설치를 위해 httpd-2.2.21.tar.gz의 압축을 풀어 설치 준비

 

 

2. apache 설치 (prefix) - config

apache@a-virtual-machine:/install/apache/httpd-2.2.21$ ./configure --

prefix=/apache/apache-2.2.21

Configuring Apache Portable Runtime library ...

Configuring APR library

Checking for libraries...

Checking for Threads...

APR will use threads

Checking for Shared Memory Support...

Checking for DSO...

Checking for Processes...

Checking for Locking...

Checking for File Info Support...

Checking for OS UUID Support...

Checking for Time Support...

Checking for Networking support...

Checking for IPv6 Networking support...

Restore user-defined environment settings...

Configuring Apache Portable Runtime Utility library...

Configuring Apache httpd ...

Applying OS-specific hints for httpd ...

Restore user-defined environment settings...

Construct makefiles and header files...

 

3. apache 설치 (prefix) - compile

apache@a-virtual-machine:/install/apache/httpd-2.2.21$ make

 

4. apache 설치 (prefix) - install

apache@a-virtual-machine:/install/apache/httpd-2.2.21$ make install

 

 

 

 

apache 설치 확인

apache@a-virtual-machine:~/apache-2.2.21$ ls -al

합계 68

drwxr-xr-x 15 apache apache  4096 2013-03-19 13:20 .

drwxr-xr-x  4 apache apache  4096 2013-03-19 13:19 ..

drwxr-xr-x  2 apache apache  4096 2013-03-19 13:19 bin

drwxr-xr-x  2 apache apache  4096 2013-03-19 13:20 build

drwxr-xr-x  2 apache apache  4096 2013-03-19 13:19 cgi-bin

drwxr-xr-x  4 apache apache  4096 2013-03-19 13:19 conf

drwxr-xr-x  3 apache apache  4096 2013-03-19 13:19 error

drwxr-xr-x  2 apache apache  4096 2011-09-09 23:25 htdocs

drwxr-xr-x  3 apache apache  4096 2013-03-19 13:19 icons

drwxr-xr-x  2 apache apache  4096 2013-03-19 13:19 include

drwxr-xr-x  3 apache apache  4096 2013-03-19 13:19 lib

drwxr-xr-x  2 apache apache  4096 2013-03-19 13:19 logs

drwxr-xr-x  4 apache apache  4096 2013-03-19 13:20 man

drwxr-xr-x 14 apache apache 12288 2011-09-09 23:29 manual

drwxr-xr-x  2 apache apache  4096 2013-03-19 13:19 modules

 

 

 

by. 현주희(11월)


 

'1. 미들웨어이야기 > 02. Apache' 카테고리의 다른 글

apache redirectmatch  (0) 2014.12.03
Apache 로그 파일 관리  (0) 2014.12.03
Apache 설치  (0) 2014.12.03
알아두면 유용한 apache httpd실행 옵션  (0) 2014.12.03
apache graceful restart  (0) 2014.12.03
httpd 실행 옵션  (0) 2014.12.03
posted by DB,MW,OS OSSW(Open Source System SoftWare

httpd는 아파치의 데몬 실행파일 입니다.

옵션을 통해 유용한 정보를 얻어 봅시다.


[아파치 conf파일 바꿔 기동하기]

./httpd -f /usr/local/apache/conf/httpd.conf

./httpd -f /usr/local/apache/conf/httpd_abc.conf

보통 기본 위치에 존재하는 httpd.conf를 이용하여 아파치를 실행하나,

두개 이상의 설정 파일을 두고 서비스마다 따로 띄운다거나 등에 사용할 때 유용합니다.

./httpd -f /usr/local/apache/conf/httpd.conf

root     32170     1  0 21:35 ?        00:00:00 ./httpd -f /usr/local/apache/conf/httpd.conf

nobody   32171 32170  0 21:35 ?        00:00:00 ./httpd -f /usr/local/apache/conf/httpd.conf

nobody   32172 32170  0 21:35 ?        00:00:00 ./httpd -f /usr/local/apache/conf/httpd.conf

nobody   32173 32170  0 21:35 ?        00:00:00 ./httpd -f /usr/local/apache/conf/httpd.conf

./httpd -f /usr/local/apache/conf/httpd_abc.conf

root     32170     1  0 21:35 ?        00:00:00 ./httpd -f /usr/local/apache/conf/httpd_abc.conf

nobody   32171 32170  0 21:35 ?        00:00:00 ./httpd -f /usr/local/apache/conf/httpd_abc.conf

nobody   32172 32170  0 21:35 ?        00:00:00 ./httpd -f /usr/local/apache/conf/httpd_abc.conf

nobody   32173 32170  0 21:35 ?        00:00:00 ./httpd -f /usr/local/apache/conf/httpd_abc.conf



[아파치 버전정보 확인]

[apache@abc:/apache/apache/bin]# ./httpd -V

Server version: Apache/2.2.24 (Unix)

Server built:   Jul  5 2013 15:26:13

Server's Module Magic Number: 20051115:31

Server loaded:  APR 1.2.7, APR-Util 1.2.7

Compiled using: APR 1.2.7, APR-Util 1.2.7

Architecture:   64-bit

Server MPM:     Prefork



[아파치 사용가능 모듈 확인]

[apache@abc:/apache/apache/bin]# ./httpd -l

Compiled in modules:

  core.c

  mod_authn_file.c

  mod_authn_default.c

  mod_authz_host.c

  mod_authz_groupfile.c

  mod_authz_user.c

  mod_authz_default.c

  mod_auth_basic.c

  mod_include.c

  mod_filter.c

  mod_log_config.c

  mod_env.c

  mod_setenvif.c


[설정된 가상호스트 확인]

[apache@abc:/apache/apache/bin]# ./httpd -S

VirtualHost configuration:

wildcard NameVirtualHosts and _default_ servers:

*:443                  is a NameVirtualHost

         default server aa.bbb..com (/apache/apache/conf/extra/httpd-ssl.conf:16)

         port 443 namevhost aa.bbb..com (/apache/apache/conf/extra/httpd-ssl.conf:16)

         port 443 namevhost bbb.ccc.com (/apache/apache/conf/extra/httpd-ssl.conf:39)

*:80                   is a NameVirtualHost

         default server aa.bbb..com (/apache/apache/conf/extra/httpd-vhosts.conf:3)

         port 80 namevhost aa.bbb..com (/apache/apache/conf/extra/httpd-vhosts.conf:3)

         port 80 namevhost bbb.ccc.com (/apache/apache/conf/extra/httpd-vhosts.conf:18)

Syntax OK


[conf파일 syntax 체크]

[apache@abc:/apache/apache/bin]# ./httpd -t

Syntax OK


[apache help옵션 확인]

[apache@abc:/apache/apache/bin]# ./httpd -h

Usage: ./httpd [-D name] [-d directory] [-f file]

               [-C "directive"] [-c "directive"]

               [-k start|restart|graceful|graceful-stop|stop]

               [-v] [-V] [-h] [-l] [-L] [-t] [-T] [-S]

Options:

  -D name            : define a name for use in <IfDefine name> directives

  -d directory       : specify an alternate initial ServerRoot

  -f file            : specify an alternate ServerConfigFile

  -C "directive"     : process directive before reading config files

  -c "directive"     : process directive after reading config files

  -e level           : show startup errors of level (see LogLevel)

  -E file            : log startup errors to file

  -v                 : show version number

  -V                 : show compile settings

  -h                 : list available command line options (this page)

  -l                 : list compiled in modules

  -L                 : list available configuration directives

  -t -D DUMP_VHOSTS  : show parsed settings (currently only vhost settings)

  -S                 : a synonym for -t -D DUMP_VHOSTS

  -t -D DUMP_MODULES : show all loaded modules 

  -M                 : a synonym for -t -D DUMP_MODULES

  -t                 : run syntax check for config files

  -T                 : start without DocumentRoot(s) check


'1. 미들웨어이야기 > 02. Apache' 카테고리의 다른 글

Apache 로그 파일 관리  (0) 2014.12.03
Apache 설치  (0) 2014.12.03
알아두면 유용한 apache httpd실행 옵션  (0) 2014.12.03
apache graceful restart  (0) 2014.12.03
httpd 실행 옵션  (0) 2014.12.03
apache ab를 이용한 부하테스트  (0) 2014.12.03
posted by LE07

운영중인 서비스의 httpd.conf등의 conf파일을 수정하고,

해당 conf파일을 읽어서 apache가 새로 시작시킬 수 있는 방법이다.


현재 접속된 커넥션은 그대로 유지하고 그외 http 모든 프로세스를 종료시키고 재시작 시그널을 보낸다

서비스의 세션 및 연결 종료없이 conf설정 파일 불러서 재실행

단, 모듈 추가 등의 apache 내에 삽입되어야 하는 작업들은 반드시 restart를 해주셔야 합니다.



<아래 글 출처 : http://httpd.apache.org>

점잖은 재시작

        시그널: USR1

     apachectl -k graceful

USR1이나 graceful 시그널을 부모에게 보내면 부모 프로세스는 자식들에게 현재 요청을 처리한후 종료하라고 (혹은 현재 아무것도 처리하지 않다면 즉시 종료하라고조언한다. 부모는 설정파일을 다시읽고 로그파일도 다시 연다. 자식이 죽을때마다 부모는 죽은 자식대신 새로운 설정 세대 기초한 자식을 실행하여 즉시 요청을 처리하게 한다.

점잖은 재시작(graceful restart)으로 USR1 사용할 없는 플래폼에서는 대신 (WINCH 같은) 다른 시그널을 사용할 있다apachectl graceful 플래폼에 알맞은 시그널을 보낸다.

점잖은 재시작은 항상 MPM 프로세스 조절 지시어 설정을 고려하여, 재시작동안 클라이언트를 서비스하는 프로세스나 쓰레드가 적당한 수를 유지하도록 설계되었다. 게다가 StartServers, 일초 최소한 StartServers만큼 새로운 자식이 안만들어지면 자식이 StartServers 개가 되도록 새로 만든다. , 프로그램은 서버의 현재 부하에 알맞은 자식의 개수를 유지하며StartServers 파라미터로 지정한 당신의 기대를 존중한다.

mod_status 사용자는 USR1 받을때 서버 통계가 0 되지 않음을 봤을 것이다. 서버는 새로운 요청을 (운영체제는 이들을 큐에 담아서 어떤 경우에도 잃어버리지 않는다) 처리하지 못하는 시간을 최소화하고 당신의 튜닝 파라미터를 존중하도록 만들어졌다. 이를 위해 세대간 모든 자식을 기록하는 scoreboard 유지한다.

status 모듈은 또한 점잖은 재시작 전에 시작하여 아직도 요청을 처리하고 있는 자식을 G 알려준다.

현재로는 USR1 사용하는 로그순환 스크립트가 재시작전에 모든 자식이 로그작성을 마쳤는지 있는 방법이 없다. 우리는 USR1 시그널을 보내고 적당한 시간이 지난후 이전 로그를 다루도록 제안한다. 예를 들어 낮은 대역폭 사용자의 경우 접속 대부분이 마치는데 10분이 안걸린다면, 이전 로그를 다루기전에 15 기다린다.

설정파일에 오류가 있다면 재시작시 부모는 재시작하지 않고 오류를 내며 종료한다. , 점잖은 재시작의 경우 종료할때 자식이 실행되도록 놔둔다. (자식들은 자신의 마지막 요청을 처리하고 "점잖게 종료한다".) 이는 서버를 재시작할때 문제가 된다. 서버는 자신이 기다릴 포트에 연결하지 못한다. 재시작전에 -t 명령행 옵션(httpd 참고)으로 설정파일 문법을 검사할 있다. 그러나 이런 검사도 서버가 올바로 재시작할지를 보장하지 못한다. 설정파일의 문법이 아닌 의미를 검사하려면 root 아닌 사용자로 httpd 시작해볼 있다. root 아니기때문에 (아니면 현재 포트를 사용하는 httpd 실행되기때문에) 오류가 없다면 소켓과 로그파일을 열려고 시도하는 과정에서 실패할 것이다. 다른 이유때문에 실패한다면 아마도 설정파일에 오류가 있을 것이다. 점잖은 재시작을 하기전에 오류를 고쳐야한다.

USR1이나 graceful 시그널을 부모에게 보내면 부모 프로세스는 자식들에게 현재 요청을 처리한후 종료하라고 (혹은 현재 아무것도 처리하지 않다면 즉시 종료하라고조언한다. 부모는 설정파일을 다시읽고 로그파일도 다시 연다. 자식이 죽을때마다 부모는 죽은 자식대신 새로운 설정 세대 기초한 자식을 실행하여 즉시 요청을 처리하게 한다.

점잖은 재시작(graceful restart)으로 USR1 사용할 없는 플래폼에서는 대신 (WINCH 같은) 다른 시그널을 사용할 있다apachectl graceful 플래폼에 알맞은 시그널을 보낸다.

점잖은 재시작은 항상 MPM 프로세스 조절 지시어 설정을 고려하여, 재시작동안 클라이언트를 서비스하는 프로세스나 쓰레드가 적당한 수를 유지하도록 설계되었다. 게다가 StartServers, 일초 최소한 StartServers만큼 새로운 자식이 안만들어지면 자식이 StartServers 개가 되도록 새로 만든다. , 프로그램은 서버의 현재 부하에 알맞은 자식의 개수를 유지하며StartServers 파라미터로 지정한 당신의 기대를 존중한다.

mod_status 사용자는 USR1 받을때 서버 통계가 0 되지 않음을 봤을 것이다. 서버는 새로운 요청을 (운영체제는 이들을 큐에 담아서 어떤 경우에도 잃어버리지 않는다) 처리하지 못하는 시간을 최소화하고 당신의 튜닝 파라미터를 존중하도록 만들어졌다. 이를 위해 세대간 모든 자식을 기록하는 scoreboard 유지한다.

status 모듈은 또한 점잖은 재시작 전에 시작하여 아직도 요청을 처리하고 있는 자식을 G 알려준다.

현재로는 USR1 사용하는 로그순환 스크립트가 재시작전에 모든 자식이 로그작성을 마쳤는지 있는 방법이 없다. 우리는 USR1 시그널을 보내고 적당한 시간이 지난후 이전 로그를 다루도록 제안한다. 예를 들어 낮은 대역폭 사용자의 경우 접속 대부분이 마치는데 10분이 안걸린다면, 이전 로그를 다루기전에 15 기다린다.

설정파일에 오류가 있다면 재시작시 부모는 재시작하지 않고 오류를 내며 종료한다. , 점잖은 재시작의 경우 종료할때 자식이 실행되도록 놔둔다. (자식들은 자신의 마지막 요청을 처리하고 "점잖게 종료한다".) 이는 서버를 재시작할때 문제가 된다. 서버는 자신이 기다릴 포트에 연결하지 못한다. 재시작전에 -t 명령행 옵션(httpd 참고)으로 설정파일 문법을 검사할 있다. 그러나 이런 검사도 서버가 올바로 재시작할지를 보장하지 못한다. 설정파일의 문법이 아닌 의미를 검사하려면 root 아닌 사용자로 httpd 시작해볼 있다. root 아니기때문에 (아니면 현재 포트를 사용하는 httpd 실행되기때문에) 오류가 없다면 소켓과 로그파일을 열려고 시도하는 과정에서 실패할 것이다. 다른 이유때문에 실패한다면 아마도 설정파일에 오류가 있을 것이다. 점잖은 재시작을 하기전에 오류를 고쳐야한다.




'1. 미들웨어이야기 > 02. Apache' 카테고리의 다른 글

Apache 설치  (0) 2014.12.03
알아두면 유용한 apache httpd실행 옵션  (0) 2014.12.03
apache graceful restart  (0) 2014.12.03
httpd 실행 옵션  (0) 2014.12.03
apache ab를 이용한 부하테스트  (0) 2014.12.03
Apache 상태 확인 페이지 설정  (0) 2014.12.02
posted by LE07
httpd 실행 옵션

httpd -h로 확인가능

-d serverroot
ServerRoot 지시어의 기본값을 serverroot로 설정한다. 설정파일에서 ServerRoot지시어를 사용하여 이 값을 수정할 수 있다. 기본값은/usr/local/apache2이다.
-f config
시작할때 config 파일에 있는 지시어를 사용한다.config가 /로 시작하지 않으면 ServerRoot에 상대경로이다. 기본값은conf/httpd.conf이다.
-k start|restart|graceful|stop
httpd를 시작, 재시작, 중단한다. 더 자세한 정보는아파치 중단하기를 참고하라.
-C directive
설정파일을 읽기전에 directive 지시어를 처리한다.
-c directive
설정파일을 읽기전에 directive 지시어를 처리한다.
-D parameter
서버 시작 혹은 재시작시 선택적으로 명령어를 처리하기위해 설정파일의 <IfDefine>섹션에 사용할 parameter를 설정한다.
-e level
서버가 시작하는동안 LogLevellevel로 설정한다. 이는 시작중 문제를 찾기위해 잠시 더 자세한 오류문을 얻을때 유용하다.
-E file
서버가 시작하는동안 file로 오류문을 보낸다.
-R directory
서버를 SHARED_CORE 규칙을 사용하여 컴파일한 경우 공유오브젝트파일 directory를 지정한다.
-h
사용할 수 있는 명령행 옵션들의 짧은 요약을 출력한다.
-l
서버에 같이 컴파일한 모듈 목록을 출력한다. LoadModule 지시어를 사용하여 동적으로 읽어들이는 모듈은 출력하지 않는다.
-L
지시어 목록을 지시어가 받는 아규먼트와 지시어 사용장소와 같이 출력한다.
-M
읽어들인 정적 모듈과 공유 모듈 목록을 출력한다.
-S
설정파일에서 읽어들인 설정을 보여준다 (현재는 가상호스트 설정만을 보여준다).
-t
설정파일의 문법검사만 한다. 프로그램은 문법을 검사한후(문법이 올바른 경우) 0이나 (문법에 문제가 있는 경우) 0이 아닌 종료코드로 즉시 종료한다. -D DUMP_VHOSTS을 사용하면 가상호스트 설정을 자세히 출력한다. -DDUMP_MODULES를 사용하면 읽어들인 모듈 목록을 출력한다.
-v
httpd의 버전을 출력하고 종료한다.
-V
httpd의 버전과 컴파일 파라미터를 출력하고 종료한다.
-X
디버그 상태로 웹서버를 실행한다. 오직 한 프로세스나 쓰레드로만 서비스하고, 서버는 콘솔에서 떨어지지 않는다.

다음 아규먼트는 Windows플래폼에서만 사용할 수 있다:

-k install|config|uninstall
아파치를 Windows NT 서비스로 설치한다; 아파치 서비스의 시작 옵션을 수정한다; 아파치 서비스 설치를 지운다.
-n name
아파치 서비스의 name.
-w
오류가 발생하면 콘솔창을 열어서 오류문을 보여준다.

출처: http://httpd.apache.org/docs/2.4/ko/programs/httpd.html

by. 강수현(9월)

'1. 미들웨어이야기 > 02. Apache' 카테고리의 다른 글

알아두면 유용한 apache httpd실행 옵션  (0) 2014.12.03
apache graceful restart  (0) 2014.12.03
httpd 실행 옵션  (0) 2014.12.03
apache ab를 이용한 부하테스트  (0) 2014.12.03
Apache 상태 확인 페이지 설정  (0) 2014.12.02
L4의 부하 분산 방법  (0) 2014.12.02
posted by lovelywas

apache에서 제공하는 ab를 이용하여 웹서버 응답속도 측정해보는 간단한 방법입니다.

ab는 apache설치 시 bin밑에 자동 설치되어 있습니다.


[ab 옵션]

c :동접 client 수

n : 페이지요청 수

t : test 허용시간

ip : 테스트 할 서버


[aaa@abc:/apache/apache-2.4.10_W/bin]# ab -c 1000 -n 1000 -t 20 http://10.10.10.10/

This is ApacheBench, Version 2.3 <$Revision: 655654 $>

Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/

Licensed to The Apache Software Foundation, http://www.apache.org/

 

Benchmarking 10.10.10.10 (be patient)

Finished 2106 requests

 

 

Server Software:        Apache/2.4.10

Server Hostname:        10.10.10.10

Server Port:            80

 

Document Path:          /

Document Length:        7662 bytes

 

Concurrency Level:      1000

Time taken for tests:   20.002 seconds   응답시간 

Complete requests:      2106

Failed requests:        0

Write errors:           0

Total transferred:      16692156 bytes

HTML transferred:       16136172 bytes

Requests per second:    105.29 [#/sec] (mean)    초당 request(micro seceond)

Time per request:       9497.686 [ms] (mean)

Time per request:       9.498 [ms] (mean, across all concurrent requests)

Transfer rate:          814.96 [Kbytes/sec] received

 

Connection Times (ms)

              min  mean[+/-sd] median   max

Connect:        0  189 703.1      0    3004

Processing:   131 1611 1339.7    949    8012

Waiting:      122 1593 1328.2    940    8002

Total:        145 1800 1721.6    953   11015

 

Percentage of the requests served within a certain time (ms)

  50%    953

  66%   1468

  75%   2201

  80%   2792

  90%   4117

  95%   5506

  98%   6910

  99%   8334

 100%  11015 (longest request)

'1. 미들웨어이야기 > 02. Apache' 카테고리의 다른 글

apache graceful restart  (0) 2014.12.03
httpd 실행 옵션  (0) 2014.12.03
apache ab를 이용한 부하테스트  (0) 2014.12.03
Apache 상태 확인 페이지 설정  (0) 2014.12.02
L4의 부하 분산 방법  (0) 2014.12.02
apache에서 file cache  (0) 2014.12.02
posted by LE07

아파치 프로세스의 상태를 모니터링 할 수 있는 페이지 설정을 해보자.

apache 2.2.26 기본 설치 후 다음과 같은 설정을 추가해 준다.


1. httpd.conf 설정에 include 설정 추가

# Real-time info on requests and configuration

Include conf/extra/httpd-info.conf


2. httpd-info.conf 설정에 상세정보 출력을 위한 옵션 변경 

#

# ExtendedStatus controls whether Apache will generate "full" status

# information (ExtendedStatus On) or just basic information (ExtendedStatus

# Off) when the "server-status" handler is called. The default is Off.

#

ExtendedStatus On


3. apache 재기동 후 /server-status 호출

http://192.168.56.102:8090/server-status


위와 같이 아파치 서버의 상세한 현재 상태를 확인할 수 있다. 해당 페이지를 활용하여 Response 메세지를 파싱하면 모니터링 용도로 사용할 수 있을 것 같다.


by 이환호

'1. 미들웨어이야기 > 02. Apache' 카테고리의 다른 글

httpd 실행 옵션  (0) 2014.12.03
apache ab를 이용한 부하테스트  (0) 2014.12.03
Apache 상태 확인 페이지 설정  (0) 2014.12.02
L4의 부하 분산 방법  (0) 2014.12.02
apache에서 file cache  (0) 2014.12.02
SSL인증서 정상 설치 여부 확인  (0) 2014.12.02
posted by lovelywas

  L4의 부하 분산 방식은 제조사에 조금씩 차이가 있지만 가장 보편적으로 많이 쓰이는 방식을 소개한다.


L4 부하 분산 방법에 대해서 알아보자.

  1. Round Robin

     - 연결되어 있는 모든 서버에 동일한 세션을 라우팅

     - 모든 서버의 연결 세션 갯수가 거의 비슷하게 됨


  2. Hashing

     - 해쉬 연결 방식은 클라이언트의 IP:PORT를 조합하여 hash 함수를 통해 라우팅

     - 세션의 유지가 가능하지만 서버의 연결 세션 갯수에 불균형이 발생 할 수 있음


  3. Least Connection

     - 리스트 커넥션 연결 방식은 Active Connection이 적은 서버로 세션을 라우팅

     - 모든 서버의 Active 연결 세션이 거의 비슷하게 됨

 

  4. Weighted Round Robin

     - 특정 서버에 가중치를 두고 라운드 로빈하는 방식으로 연결되어 있는 서버들의 성능에 차이가 있을 경우 사용

     - 예를 들어 3대의 서버가 연결되어 있고 첫번째 서버가 성능(스펙이 높음)이 좋을 경우 2:1:1 가중치를 설정하여 첫번째 서버에 다른 서버의 2배에 해당하는 세션을 라우팅 함


  5. Weighted Least Connection

     - 특정 서버에 가중치를 두고 리스트 커넥션 하는 방식으로 연결되어 있는 서버들의 성능에 차이가 있을 경우 사용

by 이환호

'1. 미들웨어이야기 > 02. Apache' 카테고리의 다른 글

apache ab를 이용한 부하테스트  (0) 2014.12.03
Apache 상태 확인 페이지 설정  (0) 2014.12.02
L4의 부하 분산 방법  (0) 2014.12.02
apache에서 file cache  (0) 2014.12.02
SSL인증서 정상 설치 여부 확인  (0) 2014.12.02
Apache 모듈정보  (0) 2014.10.31
posted by lovelywas

사용자가 많이 몰려 이미지 등의 다운로드로 서버 부하가 우려될 경우

잦은 변경이 없는 파일들에 대해 cache할 수 있도록 설정 할 수 있습니다.

cache하는 시간(초단위)도 설정할 수 있으며,

FileEtag옵션을 이용하여 파일의 MTIME, Size의 변경이 있을 경우엔 cache되어 있더라도

시 다운로드 받을 수 있도록 설정할 수 있습니다.(아래 예)

다만mod_headers.so 모듈의 load가 전제로 적용 가능한 옵션입니다.



<FilesMatch ".(css|jpg|jpeg|gif|png|ico|swf|flv|cab|bmp|svg)$">

Header set Cache-Control "max-age=36000, public, must-revalidate"

</FilesMatch>

FileETag MTime Size

LoadModule headers_module modules/mod_headers.so


'1. 미들웨어이야기 > 02. Apache' 카테고리의 다른 글

Apache 상태 확인 페이지 설정  (0) 2014.12.02
L4의 부하 분산 방법  (0) 2014.12.02
apache에서 file cache  (0) 2014.12.02
SSL인증서 정상 설치 여부 확인  (0) 2014.12.02
Apache 모듈정보  (0) 2014.10.31
Apache 환경변수  (0) 2014.10.31
posted by LE07

SSL인증서를 갱신 하였는데,

제대로 갱신 인증서가 설치되었는지 확인코자 할 때 openssl을 이용하면 됩니다.


인증서를 갱신한 서버 telnet에서 아래와 같이 명령어 수행

openssl s_client -connect 10.10.10.10:443


ip에 해당하는 서버에 설치 인증서가 화면에 출렵됩니다.

신규 인증서와 동일한지 확인

 

인증서 맨 마지막 라인에

Verify return code: 0 (ok)

=> 출력되면 정상


Verify return code: 10 (certificate has expired)

=> 만료된 인증서 상태 시 expired 출력됨



'1. 미들웨어이야기 > 02. Apache' 카테고리의 다른 글

L4의 부하 분산 방법  (0) 2014.12.02
apache에서 file cache  (0) 2014.12.02
SSL인증서 정상 설치 여부 확인  (0) 2014.12.02
Apache 모듈정보  (0) 2014.10.31
Apache 환경변수  (0) 2014.10.31
OpenSSL의 소개  (0) 2014.10.31
posted by LE07
prev 1 2 3 next