HTTPD2.4ファイル構成および一般的な構成


一、プログラムファイル構成
CentOS 7プログラム環境:yumインストールhttpd-2.4
公式ヘルプ:http://httpd.apache.org/docs/2.4/
プロファイル:
/etc/httpd/conf/httpd.conf
/etc/httpd/conf.d/*.conf
プロファイル構文を確認するには、次の手順に従います.
httpd –t
サービスユニットファイル:/usr/lib/systemd/system/httpd.service
プロファイル:/etc/sysconfig/httpd
サービス制御と起動:
systemctl enable|disable httpd.service
systemctl {start|stop|restart|status|reload} httpd.service
サイトWebドキュメントのルート:
/var/www/html
モジュールファイルのパス:
/etc/http/modules#下のファイルのソフト接続
/usr/lib64/httpd/modules
メインプログラムファイル:
/usr/sbin/httpd
メインプロセスファイル:
/etc/httpd/run/httpd.pid
ログファイルディレクトリ:
/var/log/httpd
access_log:アクセスログ
error_log:エラーログ
ヘルプパッケージ:
httpd-manual
二、配置説明
1、サーバーバージョン情報を表示する
ServerTokens Major|Minor|Mini[imal]|Prod[uctOnly]|OS|Full#各種タイプ
http://httpd.apache.org/docs/2.4/mod/core.html#servertokensさまざまなタイプのフォーマット
HTTPD2.4文件组成及常见配置_第1张图片
vi/etc/httpd/conf.d/test.conf
ServerTokens Prod    #       

HTTPD2.4文件组成及常见配置_第2张图片
2、傍受のIPとportを修正する
Listen [IP:]PORT
(1)IPを省略して自機全IPとする
(2)Listen命令の少なくとも1つは、複数回繰り返すことができる
Listen 80
Listen 8080
HTTPD2.4文件组成及常见配置_第3张图片
3、永続接続
Persistent Connection:接続が確立され、各リソースの取得が完了しても接続が切断されません.
接続する代わりに、他のリクエストが完了するまで待機し続け、デフォルトでは永続的な接続を閉じます.
切断条件:時間制限:秒単位、デフォルト5 s、httpd-2.4はミリ秒レベルをサポート
副作用:同時アクセスの多いサーバでは、永続的な接続によりリクエストに応答できないものがあります.
折衷:短期間の接続を使用
設定:KeepAlive On|Off
KeepAliveTimeout 15
シミュレーションテスト:telnet 192.168.12.27
GET/URL HTTP/1.1
Host: 192.168.12.27
4、
DSO: Dynamic Shared Object
ダイナミックモジュール構成をロードし、再起動せずに有効にします.
/etc/httpd/conf/httpd.conf
Include conf.modules.d/*.conf
httpd-M#すべてのモジュールを表示し、対応するモジュールに注釈を付ける必要がある場合は
httpd-l#静的モジュール、コアモジュールの表示
モジュールの追加例:LoadModule auth_basic_module modules/mod_auth_basic.so
5、MPM(Multi-Processing Module)多重処理モジュール
prefork, worker, event
使用するMPMを切り替えます(centos 6ではできません)
/etc/httpd/conf.modules.d/00-mpm.conf
有効にするMPM関連LoadModule命令を有効にすればよい
preforkの構成:(デフォルトで使用)1つのプロセスの下にいくつかのサブプロセスがあり、サブプロセスによってサービスが提供され、デフォルトでは4つのサブプロセスがあり、既存のプロセスが足りないと自動的に開きます.
vi/etc/httpd/conf.d/test.conf
StartServer 8#初期サブプロセス推奨拡大
MinSpareServers 5
MaxSpareServers 20
ServerLimit 256最大プロセス数、最大値20000 preforwモードで最大200000
MaxClients 256最大の同時接続数、2.4公式文書は説明していません.2.2にあります.追加しないとサブプロセス数は変わりません.
MaxRequestsPerChild 4000サブプロセスで最も処理できるリクエスト数.処理中のMaxRequestsPerChild個
リクエスト後、サブプロセスは親プロセスによって終了し、サブプロセスが使用するメモリは解放されます(0の場合は解放されません).
workerの構成:1つのプロセスの下にあるいくつかのサブプロセスは、サブプロセスの下にあるスレッドからサービスを提供します.
ServerLimit 16
StartServers 2
MaxRequestWorkers 150
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25
event MPMシングルスレッドはマルチリクエストに応答し、より少ないメモリを占有し、より高いパフォーマンスと優れたパフォーマンスを発揮し、専門的なラインを持つことができます.
keep-aliveタイプのスレッドを管理する
6、「Main」serverのドキュメントページパスを定義する
DocumentRoot “/path”
ドキュメントパスのマッピング:
DocumentRootが指すパスはURLパスの先頭になります
例:
DocumentRoot"/data/html"2.4バージョンはこの行だけを変更することはできません.権限が必要です.2.2は直接変更できます.
Require all granted
ファイルはソフト接続で、他のディレクトリでもアクセスできます
HTTPD2.4文件组成及常见配置_第4张图片
7、サイトホームページの定義
DirectoryIndex index.html  index.php
8、サイトアクセス制御の一般的なメカニズム
2つのメカニズムに基づいて、どのリソースにどのようなアクセス制御を行うかを指定できます.
アクセス制御メカニズムには、クライアントソースアドレス、ユーザーアカウントの2つがあります.
ファイルシステムのパス:
フォルダの制限
...
制限ファイル
...
ワイルドカードのサポート
...
#例
require all denied
require ip 192.168.12.1 192.168.12.27
SetHandler server-status
9、の「ソースアドレスベース」によるアクセス制御は、前のステップの
(1)Options:1つまたは複数の空白文字で区切られたオプションリスト
オプションの前の+は、指定したオプションを追加または削除することを示します.
一般的なオプション:
Indexes:指定されたURLパスの下に定義されたホーム・ページ・リソースに一致するリソース・ファイルが存在しない場合、インデックス・リストをユーザーに返します.
HTTPD2.4文件组成及常见配置_第5张图片
FollowSymLinks:シンボルリンクファイルが指すソースファイルへのアクセスを許可
HTTPD2.4文件组成及常见配置_第6张图片
None:すべて無効
All:すべて許可
(2) AllowOverride
アクセス制御に関するどの命令を指定ディレクトリの下に置くことができるか.htaccess(AccessFileNameで指定)ファイルで、前の構成命令を上書きします.
文のみ有効で、上記のoptionsの構成をWebサイトのディレクトリの下に置くことができます.htaccessファイル
AllowOverride All: .htaccessではすべての命令が有効です
AllowOverride None: .htaccessファイルが無効です
AllowOverride AuthConfig .htaccessファイルでは、AuthConfig以外のコマンドは有効になりません.
(3)IPベースのアクセス制御:
明示的な権限のないディレクトリ、デフォルトで拒否
すべてのホストへのアクセスを許可する:Require all granted
すべてのホストへのアクセスを拒否:Require all denied
特定のIPアクセスを制御する:
Require ip IPADDR:指定されたソースのIPアクセスを許可する
Require not ip IPADDR:特定のIPアクセスを拒否する
特定のホストへのアクセスを制御するには、次の手順に従います.
Require host HOSTNAME:特定のホストへのアクセスを許可する
Require not host HOSTNAME:却下
失敗はできません.少なくとも1つの成功マッチングが成功します.つまり、失敗が優先されます.
Require all granted
Require not ip 172.16.1.1特定のIPを拒否する
複数の文が1つ成功すると、成功、すなわち成功が優先されます.
Require all denied
require ip 172.16.1.1特定のIPを許可する
10、ログ設定
≪ログ・タイプ|Log Type|ldap≫:≪アクセス・ログ|Access Log|ldap≫、≪エラー・ログ|Error Log|ldap≫
エラーログ:
ErrorLog logs/error_log
LogLevel warn
LogLevelオプション:debug,info,notice,warn,error,crit,alert,emerg
アクセスログ:
ログフォーマットの定義:LogFormat strings
LogFormat "%h %l %u %{%F %T}t\"%r\"%>s %b\"%{Referer}i\"
\"%{User-Agent}i\""testlog
ログ形式の使用:
CustomLog logs/access_log testlog
http://httpd.apache.org/docs/2.4/mod/mod_log_config.html#formats公式ヘルプ
11、デフォルト文字セットを設定する
AddDefaultCharset UTF-8これがデフォルトです
中国語文字セット:GBK,GB 2312,GB 18030
モジュールベースmod_userdir.so実装
関連設定:
12、ホームディレクトリの共有を実現する
vim/etc/httpd/conf.d/userdir.confこのファイルを変更すればよい
#UserDir disabled
UserDir public_html#共有ディレクトリの名前を指定
ディレクトリの準備
su – sun;mkdir ~/public_html
echo homesun > ~/sun/public_html/index.html
setfacl –m u:apache:x  ~sun
アクセス
HTTPD2.4文件组成及常见配置_第7张图片
13、statusページ
LoadModule status_module modules/mod_status.so
SetHandler server-status
ExtendedStatus On拡張情報の表示