본문 바로가기

Linux

[Linux]Web apache2 서버 구축하기 2

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

앞에 글에서는 아파치를 설치하는 방법에대해 적어보았습니다.

이번글에는 웹서버를 돌리면서 필요한 설정들을 적어보도록하겟습니다.

먼저 기본적인 설정파일을 수정해보겠습니다.

$sudo vi /etc/apache2/apache2.conf

apache2.conf 파일을 열어보면

# Based upon the NCSA server configuration files originally by Rob McCool.

#

# This is the main Apache server configuration file.  It contains the

# configuration directives that give the server its instructions.

# See http://httpd.apache.org/docs/2.2/ for detailed information about

# the directives.

#

# Do NOT simply read the instructions in here without understanding

# what they do.  They're here only as hints or reminders.  If you are unsure

# consult the online docs. You have been warned.  

#

# The configuration directives are grouped into three basic sections:

#  1. Directives that control the operation of the Apache server process as a

#     whole (the 'global environment').

#  2. Directives that define the parameters of the 'main' or 'default' server,

#     which responds to requests that aren't handled by a virtual host.

#     These directives also provide default values for the settings

#     of all virtual hosts.

#  3. Settings for virtual hosts, which allow Web requests to be sent to

#     different IP addresses or hostnames and have them handled by the

#     same Apache server process.

#

# Configuration and logfile names: If the filenames you specify for many

# of the server's control files begin with "/" (or "drive:/" for Win32), the

# server will use that explicit path.  If the filenames do *not* begin

# with "/", the value of ServerRoot is prepended -- so "foo.log"

# with ServerRoot set to "/etc/apache2" will be interpreted by the

# server as "/etc/apache2/foo.log".

#


### Section 1: Global Environment

#

# The directives in this section affect the overall operation of Apache,

# such as the number of concurrent requests it can handle or where it

# can find its configuration files.

#


#

# ServerRoot: The top of the directory tree under which the server's

# configuration, error, and log files are kept.

#

# NOTE!  If you intend to place this on an NFS (or otherwise network)

# mounted filesystem then please read the LockFile documentation (available

# at <URL:http://httpd.apache.org/docs/2.2/mod/mpm_common.html#lockfile>);

# you will save yourself a lot of trouble.

#

# Do NOT add a slash at the end of the directory path.

#

#ServerRoot "/etc/apache2"


#

# The accept serialization lock file MUST BE STORED ON A LOCAL DISK.

#

LockFile ${APACHE_LOCK_DIR}/accept.lock


#

# PidFile: The file in which the server should record its process

# identification number when it starts.

# This needs to be set in /etc/apache2/envvars

#

PidFile ${APACHE_PID_FILE}


#

# Timeout: The number of seconds before receives and sends time out.

#

Timeout 300


#

# KeepAlive: Whether or not to allow persistent connections (more than

# one request per connection). Set to "Off" to deactivate.

#

KeepAlive On


#

# MaxKeepAliveRequests: The maximum number of requests to allow

# during a persistent connection. Set to 0 to allow an unlimited amount.

# We recommend you leave this number high, for maximum performance.

#

MaxKeepAliveRequests 100


#

# KeepAliveTimeout: Number of seconds to wait for the next request from the

# same client on the same connection.

#

KeepAliveTimeout 5


##

## Server-Pool Size Regulation (MPM specific)

## 


# prefork MPM

# StartServers: number of server processes to start

# MinSpareServers: minimum number of server processes which are kept spare

# MaxSpareServers: maximum number of server processes which are kept spare

# MaxClients: maximum number of server processes allowed to start

# MaxRequestsPerChild: maximum number of requests a server process serves

<IfModule mpm_prefork_module>

    StartServers          5

    MinSpareServers       5

    MaxSpareServers      10

    MaxClients          150

    MaxRequestsPerChild   0

</IfModule>


# worker MPM

# StartServers: initial number of server processes to start

# MinSpareThreads: minimum number of worker threads which are kept spare

# MaxSpareThreads: maximum number of worker threads which are kept spare

# ThreadLimit: ThreadsPerChild can be changed to this maximum value during a

#              graceful restart. ThreadLimit can only be changed by stopping

#              and starting Apache.

# ThreadsPerChild: constant number of worker threads in each server process

# MaxClients: maximum number of simultaneous client connections

# MaxRequestsPerChild: maximum number of requests a server process serves

<IfModule mpm_worker_module>

    StartServers          2

    MinSpareThreads      25

    MaxSpareThreads      75 

    ThreadLimit          64

    ThreadsPerChild      25

    MaxClients          150

    MaxRequestsPerChild   0

</IfModule>


# event MPM

# StartServers: initial number of server processes to start

# MinSpareThreads: minimum number of worker threads which are kept spare

# MaxSpareThreads: maximum number of worker threads which are kept spare

# ThreadsPerChild: constant number of worker threads in each server process

# MaxClients: maximum number of simultaneous client connections

# MaxRequestsPerChild: maximum number of requests a server process serves

<IfModule mpm_event_module>

    StartServers          2

    MinSpareThreads      25

    MaxSpareThreads      75 

    ThreadLimit          64

    ThreadsPerChild      25

    MaxClients          150

    MaxRequestsPerChild   0

</IfModule>


# These need to be set in /etc/apache2/envvars

User ${APACHE_RUN_USER}

Group ${APACHE_RUN_GROUP}


#

# AccessFileName: The name of the file to look for in each directory

# for additional configuration directives.  See also the AllowOverride

# directive.

#


AccessFileName .htaccess


#

# The following lines prevent .htaccess and .htpasswd files from being 

# viewed by Web clients. 

#

<Files ~ "^\.ht">

    Order allow,deny

    Deny from all

    Satisfy all

</Files>


#

# DefaultType is the default MIME type the server will use for a document

# if it cannot otherwise determine one, such as from filename extensions.

# If your server contains mostly text or HTML documents, "text/plain" is

# a good value.  If most of your content is binary, such as applications

# or images, you may want to use "application/octet-stream" instead to

# keep browsers from trying to display binary files as though they are

# text.

#

# It is also possible to omit any default MIME type and let the

# client's browser guess an appropriate action instead. Typically the

# browser will decide based on the file's extension then. In cases

# where no good assumption can be made, letting the default MIME type

# unset is suggested  instead of forcing the browser to accept

# incorrect  metadata.

#

DefaultType None



#

# HostnameLookups: Log the names of clients or just their IP addresses

# e.g., www.apache.org (on) or 204.62.129.132 (off).

# The default is off because it'd be overall better for the net if people

# had to knowingly turn this feature on, since enabling it means that

# each client request will result in AT LEAST one lookup request to the

# nameserver.

#

HostnameLookups Off


# ErrorLog: The location of the error log file.

# If you do not specify an ErrorLog directive within a <VirtualHost>

# container, error messages relating to that virtual host will be

# logged here.  If you *do* define an error logfile for a <VirtualHost>

# container, that host's errors will be logged there and not here.

#

ErrorLog ${APACHE_LOG_DIR}/error.log


#

# LogLevel: Control the number of messages logged to the error_log.

# Possible values include: debug, info, notice, warn, error, crit,

# alert, emerg.

#

LogLevel warn


# Include module configuration:

Include mods-enabled/*.load

Include mods-enabled/*.conf


# Include all the user configurations:

Include httpd.conf


# Include ports listing

Include ports.conf


#

# The following directives define some format nicknames for use with

# a CustomLog directive (see below).

# If you are behind a reverse proxy, you might want to change %h into %{X-Forwarded-For}i

#

LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined

LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined

LogFormat "%h %l %u %t \"%r\" %>s %O" common

LogFormat "%{Referer}i -> %U" referer

LogFormat "%{User-agent}i" agent


# Include of directories ignores editors' and dpkg's backup files,

# see README.Debian for details.


# Include generic snippets of statements

Include conf.d/


# Include the virtual host configurations:

Include sites-enabled/

 

이런식으로 나옵니다.

여기서 몆가지를 설정해보자면.

LockFile ${APACHE_LOCK_DIR}/accept.lock    // Lock 파일명 또는 파일경로를 지정하는 내용입니다.

PidFile ${APACHE_PID_FILE}                    //  프로세스ID 파일명과 파일의 위치를 지정하는 내용입니다.

Timeout 300                                   // 클라이언트가 웹서버에 접속한후 GET요청을 받을때까지 기다리는

기다리는 시간입니다 저시간이 지나가게되면 접속을 끊어버립니다

KeepAlive On                                   // 클라이언트가 웹사이트에 지속적인 접속 여부를 허용 여부 설정입니다.

지속적인 접속을 원치않을경우 OFF 로 바꿔줍니다

MaxKeepAliveRequests 100                           // KeepAlive On  으로 설정했을때 허용할 최대 요청수를 설정합니다.

KeepAliveTimeout 5                            // 다음번의 요청하기위한 대기시간을 설정합니다.


이번글에서는 apache2.conf 파일의 설정에대해 적어보았습니다.

다음글에서는 html 파일의 위치와 로그에대해 적어보도록하겟습니다.