httpdシリーズ-01-構成
8640 ワード
[TOC]
プライマリプロファイルの場所: プロファイルは、grepコマンドで概略表示できる3つのセクションに分かれています. さらに、Main serverとVirtual Hostsの構成は同時に有効な しかありません.は、/etc/http/conf.d/ディレクトリの下で定義することができる.confの最後のファイルで属性を定義したり、httpdを直接変更したりすることができます.confファイル httpd.confプロファイルのコンテンツフォーマットは基本的に
たとえば
htpasswd:アクセス制御に必要なユーザーパスワードファイルの生成に使用 -c:新規ファイル -m: をmd 5で暗号化-d:指定ファイルの指定ユーザ を削除する.
httpd -l:組み込みモジュールの表示: -M:
共通構成の説明
None:オプションはサポートされていません Indexes:インデックスディレクトリ機能 FollowSymLinks:シンボルリンクの元のファイル へのアクセスを許可するかどうか Includes:サーバ側に(SSI-ServerSideInclude) を含めることを許可するかどうか SymLinksifOwnerMatch ExecCGI:CGIスクリプトの許可 MultiViews:国際化などのコンテンツ交渉に関するマルチビュー技術サポート All:すべてのオプションをサポート
ホストベースのアクセス制御の定義
ローカルファイルシステム
仮想ホストとMain Serverは同時に1つしか機能しません.DocumentRootを注釈すると、仮想ホストに対するMain Serverの構成をhttpdで直接無効にすることができます.confで定義を編集するも、/etc/http/conf.d/ディレクトリで定義してもよい.confの最後のファイルで定義します.
ホスト名、IP、ポートの混合に基づく仮想ホスト定義例:
MPMに関する情報は以下のMPM章をご覧ください
MPM
mpm_winnt prefork 要求はプロセス応答 である.安定 低性能 worker 各プロセスは、複数のスレッド を生成する.要求は、 に1つのスレッドで応答する.
event プロセスは、要求 を処理する.
各モデルに対応する起動スクリプトは次のとおりです.
各MPMモデルのデフォルトモジュール
HTTPD構成を変更すればよい
プロファイルの概要
/etc/httpd/conf/httpd.conf
httpd -t
プロファイルの構文に誤りがあるかどうかをテストします.[root@c2 conf]# grep "Section" httpd.conf
### Section 1: Global Environment
### Section 2: 'Main' server configuration
### Section 3: Virtual Hosts
directive-name directive-value
たとえば
MaxKeepAliveRequests 100
いくつかのコマンド
[root@c2 conf.d]# htpasswd -c -m /etc/httpd/.users tom
New password:
Re-type new password:
Adding password for user tom
[root@c2 conf.d]# htpasswd -m /etc/httpd/.users cat
New password:
Re-type new password:
Adding password for user cat
[root@c2 conf.d]# cat /etc/httpd/.users
tom:$apr1$j/IgPNIo$5zyp/tnoWrGencgOWlIYu/
cat:$apr1$W.Vbd.1S$2er0pf.3dtKjP71L9VPJI1
[root@c2 conf.d]# httpd -l
Compiled in modules:
core.c
prefork.c
http_core.c
mod_so.c
共通構成の説明
グローバル構成
基本構成
# , : http://www.ha97.com/2505.html
ServerTokens OS
## ServerRoot
ServerRoot "/etc/httpd"
## PidFile run/httpd.pid
PidFile run/httpd.pid
# Timeout: The number of seconds before receives and sends time out.
Timeout 60
#
KeepAlive Off|On
#
# 0
MaxKeepAliveRequests 100
# " ", :
KeepAliveTimeout 15
#
# Listen 192.168.1.111:80
Listen 80
# Load config files from the config directory "/etc/httpd/conf.d".
Include conf.d/*.conf
# worker
User apache
Group apache
LoadModule
この命令はhttpdが起動する時にどのモジュールをロードするかを構成する.
書式:LoadModule ( )
LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule auth_digest_module modules/mod_auth_digest.so
LoadModule authn_file_module modules/mod_authn_file.so
LoadModule authn_alias_module modules/mod_authn_alias.so
LoadModule authn_anon_module modules/mod_authn_anon.so
........................
Options
# , : http://www.ha97.com/2505.html
ServerTokens OS
## ServerRoot
ServerRoot "/etc/httpd"
## PidFile run/httpd.pid
PidFile run/httpd.pid
# Timeout: The number of seconds before receives and sends time out.
Timeout 60
#
KeepAlive Off|On
#
# 0
MaxKeepAliveRequests 100
# " ", :
KeepAliveTimeout 15
#
# Listen 192.168.1.111:80
Listen 80
# Load config files from the config directory "/etc/httpd/conf.d".
Include conf.d/*.conf
# worker
User apache
Group apache
LoadModule ( )
LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule auth_digest_module modules/mod_auth_digest.so
LoadModule authn_file_module modules/mod_authn_file.so
LoadModule authn_alias_module modules/mod_authn_alias.so
LoadModule authn_anon_module modules/mod_authn_anon.so
........................
Allow
ホストベースのアクセス制御の定義
#
Order allow,deny
Allow from all
# 192.168.0.1,172.16.100.177
Order from deny,allow
Deny 192.168.0.1,172.16.100.177
# .ht
Order allow,deny
Deny from all
Satisfy All
AllowOverride
AllowOverride AuthConfig
# :
AuthType Basic
#
AuthName "Restricted Site ..."
#
AuthUserFile "/etc/httpd/conf/.users"
# AuthGroupFile "/etc/httpd/conf/.groups"
# AuthUserFile
Require valid-user
# tom
# Require user tom
# Require group my_group_name
Directory
ローカルファイルシステム
Options None
AllowOverride AuthConfig
AuthType Basic
AuthName " "
AuthUserFile /etc/httpd/conf/.users
Require valid-user
Location
SetHandler server-status
Order Deny,Allow
Deny from all
Alow from foo.bar.com
Main server構成
ServerAdmin root@localhost
#
# ServerName gives the name and port that the server uses to identify itself.
# This can often be determined automatically, but we recommend you specify
# it explicitly to prevent problems during startup.
#
# If this is not set to valid DNS name for your host, server-generated
# redirections will not work. See also the UseCanonicalName directive.
#
# If your host doesn't have a registered DNS name, enter its IP address here.
# You will have to access it by its address anyway, and this will make
# redirections work in a sensible way.
#ServerName www.example.com:80
#
# UseCanonicalName: Determines how Apache constructs self-referencing
# URLs and the SERVER_NAME and SERVER_PORT variables.
# When set "Off", Apache will use the Hostname and Port supplied
# by the client. When set "On", Apache will use the value of the
# ServerName directive.
UseCanonicalName Off
#
DocumentRoot "/var/www/html"
#
DirectoryIndex index.html index.html.var
# MIME
TypesConfig /etc/mime.types
# MIME
DefaultType text/plain
# (access_log) client IP (Off) hostname(On)
# Off,
HostnameLookups Off
ErrorLog logs/error_log
# debug, info, notice, warn, error, crit,alert, emerg.
LogLevel warn
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
# combined LogFormat
CustomLog logs/access_log combined
#
Alias /icons/ "/var/www/icons/"
仮想ホスト構成
仮想ホストとMain Serverは同時に1つしか機能しません.DocumentRootを注釈すると、仮想ホストに対するMain Serverの構成をhttpdで直接無効にすることができます.confで定義を編集するも、/etc/http/conf.d/ディレクトリで定義してもよい.confの最後のファイルで定義します.
# Use name-based virtual hosting.
#NameVirtualHost *:80
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for requests without a known
# server name.
#
ServerAdmin [email protected]
DocumentRoot /www/docs/dummy-host.example.com
ServerName dummy-host.example.com
ErrorLog logs/dummy-host.example.com-error_log
CustomLog logs/dummy-host.example.com-access_log common
ホスト名、IP、ポートの混合に基づく仮想ホスト定義例:
Listen 8080
# IP ,80
# NameVirtualHost *:80
ServerName my-host-1.com
DocumentRoot /web/htdocs/1
CustomLog logs/referer_log combined
Options Indexes
AllowOverride None
Order deny,allow
# 192.168.1.106
Deny from 192.168.1.106
ServerName my-host-2.com
DocumentRoot /web/htdocs/2
ServerName my-host-3.com
DocumentRoot /web/htdocs/3
# :Listen 8080
ServerName my-host-4.com
DocumentRoot /web/htdocs/4
Options None
AllowOverride AuthConfig
AuthType Basic
AuthName " "
AuthUserFile /etc/httpd/conf/.users
Require valid-user
MPM関連の構成
MPMに関する情報は以下のMPM章をご覧ください
間の構成は、対応するモジュールpreforkが有効になっている場合にのみ有効になります.その他は同様です.
#
StartServers 8
#
MinSpareServers 5
#
MaxSpareServers 20
# MaxClients
ServerLimit 256
#
MaxClients 256
#
# ,
MaxRequestsPerChild 4000
StartServers 4
MaxClients 300
#
MinSpareThreads 25
#
MaxSpareThreads 75
ThreadsPerChild 25
MaxRequestsPerChild 0
MPM
Multi Process Modules
いくつかのMPMモデル
各モデルに対応する起動スクリプトは次のとおりです.
/usr/sbin/httpd
/usr/sbin/httpd.event
/usr/sbin/httpd.worker
各MPMモデルのデフォルトモジュール
[root@c2 conf.d]# httpd -l
Compiled in modules:
core.c
prefork.c
http_core.c
mod_so.c
[root@c2 conf.d]# httpd.worker -l
Compiled in modules:
core.c
worker.c
http_core.c
mod_so.c
[root@c2 conf.d]# httpd.event -l
Compiled in modules:
core.c
event.c
http_core.c
mod_so.c
httpのMPMを修正する
vim /etc/sysconfig/httpd
HTTPD構成を変更すればよい
#HTTPD=/usr/sbin/httpd.worker