ホームページ  >  記事  >  運用・保守  >  HTTPサービス構築例を詳しく解説

HTTPサービス構築例を詳しく解説

零下一度
零下一度オリジナル
2017-06-27 10:06:062299ブラウズ
1. はじめに
1.
による暗号化された Web ページ (https): tcp:443 について知る
1. 最新バージョンは、この Web サイトのサーバーの使用状況で確認できます。
ハイパーテキスト転送プロトコル (HTTP、ハイパーテキスト転送プロトコル) は、インターネット上で最も広く使用されているネットワーク プロトコルです。すべての WWW ファイルはこの標準に準拠する必要があります。 HTTP を設計する本来の目的は、HTML ページを公開および受信するメソッドを提供することでした
2. Apache
Apache HTTP サーバー (Apache と呼ばれる) は、Apache Software Foundation のオープン ソース Web サーバーです。ほとんどのコンピュータのオペレーティング システムで動作し、そのマルチプラットフォームとセキュリティにより広く使用されています。その
機能は次のとおりです。最新の HTTP/1.1 通信プロトコルをサポートします 2. シンプルで強力なファイルベースの構成プロセスを備えています 3. ユニバーサル ゲートウェイ インターフェイスをサポートします
4. IP ベースおよびドメイン名ベースの仮想ホストをサポートします
5.複数の HTTP 認証方法をサポート
6. 統合された Perl 処理モジュール
7. 統合されたプロキシ サーバー モジュール
8. サーバー ステータスのリアルタイム監視とカスタマイズされたサーバー ログをサポート
9. サーバー側の組み込み命令をサポート)
10. Secure Socket Layer (SSL) をサポートします
11. ユーザーセッションプロセスの追跡を提供します
13. サードパーティモジュールを介して JavaServlet をサポートします
www.apache.org --apache 公式 Web サイト
# yum install httpd* -- httpd サービスをインストールします
# httpd -t -- 設定ファイルが正しいことを確認します
# rm -rf /etc/httpd/conf .d/welcome.conf --httpd がインストールされているため、ウェルカム インターフェイスを削除します -
/ServerIp/manual
4. prefork、worker
の 2 つのモードで実行します。モード:
prefork は Unix プラットフォームのデフォルト (デフォルト) MPM であり、それぞれが 1 つのスレッドのみを持つ複数の子プロセスを使用します。各プロセスは特定の時点で 1 つの接続のみを維持できるため、効率は非常に高いですが、大量のメモリを消費します。 このマルチプロセッシング モジュール (MPM) は、Apache 1.3 と同様に動作する、非スレッドの事前フォークされた Web サーバーを実装します。これは、スレッドセーフなライブラリを持たず、スレッドの互換性の問題を回避する必要があるシステムに適しています。これは、各リクエストが互いに独立している必要がある場合に最適な MPM であり、1 つのリクエストで問題が発生しても他のリクエストに影響を与えません。
ワーカーモード:
ワーカーは
複数のサブプロセスを使用し、各サブプロセスには複数のスレッドがあります
、各スレッドは特定の時間に1つの接続のみを維持できます、メモリ使用量は比較的小さく、高トラフィックのhttpに適していますサーバー。欠点は、スレッドがクラッシュすると、そのスレッドのいずれかとともにプロセス全体が「停止」することです。そのため、プログラムの実行中に、プログラムが「すべてのスレッドが安全」であるとシステムに認識される必要があります。 このマルチプロセッシング モジュール (MPM) により、Web サーバーはマルチスレッドとマルチ処理の混合をサポートできるようになります。リクエストの処理にはスレッドが使用されるため、プロセスベースの MPM よりも少ないシステム リソースのオーバーヘッドで大量のリクエストを処理できます。ただし、プロセスベースの MPM の安定性を得るために、それぞれが複数のスレッドを持つ複数のプロセスも使用します。
# httpd -l -- 実行モードを表示、デフォルトは prefork.c です
# mv -v /usr/sbin/httpd{,.prefork} -- バックアップ prefork モード
# mv -v /usr/sbin / httpd{.worker,} -- ワーカーモードを使用します
2. 設定ファイルの詳細な説明
1. グローバル環境パラメータ
OS
-- サーバーがホストに応答するときに Apache を表示しますヘッダー情報 バージョンとオペレーティング システム名
ServerRoot "/etc/httpd"
-- 一般的に、これには conf/ サブディレクトリと logs/ サブディレクトリが含まれます。このディレクトリにあります。
PidFile run/httpd.pid
-- 最初の httpd プロセス (他のすべてのプロセスの親プロセス) のプロセス番号ファイルの場所。
タイムアウト 60
-- 60 秒後にデータの送受信がない場合、接続は切断されます
キープアライブ オフ
-- キープアライブ機能はデフォルトでは使用されません。つまり、クライアントは接続をリクエストするときは、一度に 1 つのファイルにのみ応答します
MaxKeepAliveRequests 100 を許可することをお勧めします -- キープアライブ機能を使用する場合、クライアントが応答できるファイルの最大上限を設定します。一度接続を要求すると、制限を超えると切断されます
KeepAliveTimeout 15 --キープアライブ機能を使用する場合、隣接する接続間の時間間隔が15秒を超えると、接続が切断されます
......
Listen 80 -- サーバーがリッスンするポート番号。さらに多くのリッスン ポートを開くことができます
conf.d/*.conf を含めます -- /etc/httpd/ に conf で終わるすべての設定を含めますconf.d ディレクトリ ファイルが含まれます
ユーザー apache -サービスを提供するサブプロセスのユーザー
グループ apache -サービスを提供するサブプロセスのユーザーグループ
ServerAdmin root@george.com -- 管理者の電子メール アドレス
ServerName mail.george.com:80 -- メイン サイト名 (Web サイトのホスト名)
UseCanonicalName Off
DocumentRoot "/var/www /html" -- Web ドキュメントのルート ディレクトリを設定します。ただし、シンボリック リンクとエイリアスを使用して他の場所を指すことができます。絶対パスでない場合は、ServerRoot からの相対パスとみなされます
2パス制御パラメータ
DirectoryIndexindex.htmlindex.html.var --Web サイトのデフォルトの Web ページファイル名、左優先
AccessFileName .htaccess --保護されたディレクトリ構成ファイルの名前を指定します
--------------------- ------------------------ ------------------------ ------------------------ -------
--カプセル化用 ディレクトリとそのサブディレクトリにのみ有効な一連の命令。 ファイル システム上のディレクトリの場合
オプション インデックス FollowSymLinks
AllowOverride None
順序許可、拒否
すべてから許可
192.168.133.22 から拒否
ディレクトリ- path -- には、ディレクトリへのフルパス、または Unix シェル一致構文を含むワイルドカード文字列を指定できます。ワイルドカード文字列では、「?」は任意の 1 文字に一致し、「*」は任意の文字のシーケンスに一致します。 「[]」を使用して文字範囲を決定することもできます。正規表現は、「~」文字の後にも使用できます
オプション --このコマンドの値は、「なし」、「すべて」、または次のオプションの任意の組み合わせです: Indexes(' が前に付きます) -' を指定すると、Web サイトのリスト機能がオフになります。
AllowOverride -- .htaccess ファイルに配置された制御ディレクティブ。 All、None (.htaccess 内の構成は表示されない)、または次のディレクティブの組み合わせにすることができます。 。 oreder のパラメーターは最終的には右側に基づいており、順序は逆にすることができます
------------------------------------- ---------- -------------------------------------- ------- -----------------------<ディレクトリ "/www/images">
<ファイル ~ ".jpg$"> - - 指定されたファイル
について、
は特定のディレクトリの下にあることも、グローバルに存在することもできます
注文を拒否、許可 すべてから許可
-------------------------------------------- --- --------------------------------------------------- --- ------
--
URL「http://servername/server-status」を使用してサーバーのステータス (または情報) を表示できるようにします。
Locationは主に制御URLです
SetHandlerserver-status(server-info)Order Deny,allowAllow from all
------ ---------------------------------------------------- ---------------------------------------------------- ----
Alias
/ url-path /filesystem-path
-- URL をファイル システム パスにマップします (システム上で ln -s ソフト リンクを使用してこれを実現することもできます)
<ディレクトリ "/filesystem-path">
3. ディレクトリ アクセスのユーザー パスワード制御 (システム ユーザー以外)
<ディレクトリ "/var/www/html" > --
理論は場所、ファイルでも使用できます
オプションインデックスFollowSymLinks
AllowOverrideNone
注文許可、拒否
すべてから許可
authname "自分自身を認証" --URLを開くようにブラウザにプロンプ​​トが表示される
authtype Basic
authuserfile /etc/httpd/userpasswd --ユーザーとパスワード ファイルの場所
require valid-user
# htpasswd -c /etc/httpd/userpasswd Frank -- アクセスを許可するユーザーを作成します
# htpasswd /etc/httpd/userpasswd george - -別のユーザーを作成します。「-c」パラメータを覚えておいてください。これはパスワード ファイルを作成するためのもので、最初のユーザーを作成する場合にのみ使用できます。
注: ディレクトリがパスワード制御されたアクセスを使用している場合、その親ディレクトリが Web ブラウザを通じてリストされるときに、そのディレクトリは表示されません。つまり、非表示になります。ただし、URL を直接入力するとアクセスできます (アカウントとパスワードがある場合でも)。
4. ドメイン名ベースの仮想ホスト
NameVirtualHost *:80 -- この設定を追加して、ポート 80 を仮想ホスト ポートとして設定します
サーバー名 www.george.com
DocumentRoot /var/www/html/
<ディレクトリ "/var/www/html">
.... ... .
--2 番目の仮想ホスト
ServerName mail.george.com
DocumentRoot /var/ www/cgi- bin/openwebmail/
ScriptAlias /mail /var/www/cgi-bin/openwebmail/openwebmail.pl
.... .. ......
この実験の SeverName パラメータが IP アドレスに接続されている場合、IP ベースの仮想ホストを作成することもできます
5. ログパラメータ
ErrorLog logs/error_log --エラーの保存場所log
LogLevel warn -- エラー ログ レベルを定義します。次のものが含まれます: デバッグ、情報、通知、警告、エラー、クリティカル、アラート、緊急。
LogFormat "%h %l %u %t "%r" %>s %b " %{Referer}i" "%{User-Agent}i"" を組み合わせた
......
LogFormat "%{User-Agent}i"エージェント -- この 4 つは、アクセス ログのデフォルトの形式です
CustomLog logs/access_log を組み合わせた -- 組み合わせたアクセス ログ形式を使用します
%h – クライアントの IP アドレスまたはホスト名
%l – これは RFC で判断されましたclient identd 1413 ID によると、出力内の記号「-」は、ここでの情報が無効であることを示します。
%u – HTTP 認証システムによって取得された Web ページにアクセスしたクライアントの名前。出力内の「-」記号は、ここでの情報が無効であることを示します。
%t – サーバーがリクエストの処理を完了した時刻。
"%r" – 引用符は、顧客から送信されたリクエストの内容であり、多くの有益な情報が含まれています。
%>s – これはサーバーからクライアントに返されるステータス コードです。
%b – 最後の項目は、応答ヘッダーを除いてクライアントに返されるバイト数です。
"%{Referer}i" – この項目は、リクエストが送信された Web ページを指定します。
「%{User-Agent}i」 – この項目は、お客様のブラウザから提供されるブラウザ識別情報です。
6. SSL暗号化設定
# yum install -y mod_ssl --暗号化モジュールをインストールします
# vim /etc/httpd/conf.d/ssl.conf
ErrorLog LOGS/SSL_ERROR_LOG
TRANSFERLLOG LOGS/SSL_ACCESS_LOG
LOGLEVEL WarNGINGINGINGINGINGINGINGINGICOCOL すべて -sslv2
SSLCIPHERTE デフォルト:! シード:!
SSLCertificateFile /etc/pki/tls/certs/localhost.crt --設定公開鍵ファイル
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key --設定秘密鍵ファイル
<ファイル~ ".(cgi|shtml|phtml|php3?)$">
SSLOptions +StdEnvVars
ServerName www.george.com
DocumentRoot /var/www/cgi-bin/openwebmail /
ScriptAlias /mail /var/www/cgi-bin/openwebmail/openwebmail.pl
SSLOptions +StdEnvVars
Options Indexes
order拒否、許可
すべてから許可
&lt;/location&gt; h % {SSL_PROTOCOL}x %{SSL_CIPHER}x "%r" %b"
6.1. 証明書を自分で設定します
# mkdir /etc/pki/test/
# cd /etc/ pki/test
# openssl genrsa -out /etc/pki/test/test.key 1024 --秘密鍵
# openssl req -new -key test.key -out test.csr国名 ( 2 文字コード ) [XX]:
cn
州名または省名 (フルネーム) []:
広東
地域名 (例:都市) [デフォルトの都市]:
深セン
組織名 (例: 、会社) [デフォルト会社株式会社]:
IT
組織単位名 (例: セクション) []:maintenance
共通名 (例: 自分の名前またはサーバーのホスト名) []:www.george.com
メールアドレス []:root@mail .george.com
証明書リクエストと一緒に送信される次の「追加」属性を入力してください
チャレンジパスワード []:123456
オプションの会社名 []:Azt
# openssl req -x509 -days 365 -key test.key -in test.csr -out test.crt --公開キー
# ls --次に、次の test.crt && test.key を /etc/httpd/conf に設定します。 .d/ssl.conf は
test.crt test.csr test.key
6.2. 設定した証明書をテストします
ただし、自分で作成した証明書はブラウザで認識されると信頼されません ステータスも「CA ルート証明書が「信頼されたルート証明機関」ストアにないため、信頼できません。

ブラウザで自分で作成した証明書 (test. crt) を手動で追加する必要があります。」 「信頼されたルート証明機関」および「信頼された発行者」。 Google Chrome を例にとると、手順は次のとおりです。

その後、さらにいくつかのダイアログボックスが表示されます。「次へ」-「完了」-「はい」をクリックします。それで大丈夫です。

その際、ブラウザで弊社Webサイトを開いて証明書の状況を確認してください「証明書に問題はありません」。

以上がHTTPサービス構築例を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。