ホームページ 運用・保守 Linuxの運用と保守 HTTPサービス構築例を詳しく解説

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

Jun 27, 2017 am 10:06 AM
http 建てる 仕える

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 までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

コマンドを使用してリモート デスクトップ接続サービスを開く方法 コマンドを使用してリモート デスクトップ接続サービスを開く方法 Dec 31, 2023 am 10:38 AM

リモート デスクトップ接続は多くのユーザーの日常生活に利便性をもたらしていますが、操作がより便利なコマンドを使用してリモート接続したいと考えている人もいます。リモート デスクトップ接続サービスは、コマンドを使用して開くことでこの問題を解決できます。リモート デスクトップ接続コマンドの設定方法: 方法 1. コマンドを実行してリモート接続します。 1. 「Win+R」を押して「ファイル名を指定して実行」を開き、「mstsc2」と入力し、「オプションの表示」をクリックします。 3. IP アドレスを入力して、「クリック」をクリックします。 "接続する"。 4. 接続中であることが表示されます。方法 2: コマンド プロンプトを介してリモート接続する 1. 「Win+R」を押して「ファイル名を指定して実行」を開き、「cmd2」と入力します。「コマンド プロンプト」に「mstsc/v:192.168.1.250/console」と入力します。

Web ページのリダイレクトの一般的なアプリケーション シナリオを理解し、HTTP 301 ステータス コードを理解する Web ページのリダイレクトの一般的なアプリケーション シナリオを理解し、HTTP 301 ステータス コードを理解する Feb 18, 2024 pm 08:41 PM

HTTP 301 ステータス コードの意味を理解する: Web ページ リダイレクトの一般的なアプリケーション シナリオ インターネットの急速な発展に伴い、Web ページの操作に対する人々の要求はますます高くなっています。 Web デザインの分野では、Web ページのリダイレクトは一般的かつ重要なテクノロジであり、HTTP 301 ステータス コードによって実装されます。この記事では、HTTP 301 ステータス コードの意味と、Web ページ リダイレクトにおける一般的なアプリケーション シナリオについて説明します。 HTTP301 ステータス コードは、永続的なリダイレクト (PermanentRedirect) を指します。サーバーがクライアントのメッセージを受信すると、

Linux でサービスを再起動する正しい方法は何ですか? Linux でサービスを再起動する正しい方法は何ですか? Mar 15, 2024 am 09:09 AM

Linux でサービスを再起動する正しい方法は何ですか? Linux システムを使用していると、特定のサービスを再起動する必要がある状況がよく発生しますが、サービスの再起動時に実際にサービスが停止しない、または開始しないなどの問題が発生することがあります。したがって、サービスを再起動する正しい方法を習得することが非常に重要です。 Linux では、通常、systemctl コマンドを使用してシステム サービスを管理できます。 systemctl コマンドは systemd システム マネージャーの一部です

HTTP 200 OK: 成功した応答の意味と目的を理解する HTTP 200 OK: 成功した応答の意味と目的を理解する Dec 26, 2023 am 10:25 AM

HTTP ステータス コード 200: 成功した応答の意味と目的を調べる HTTP ステータス コードは、サーバーの応答のステータスを示すために使用される数値コードです。このうち、ステータス コード 200 は、リクエストがサーバーによって正常に処理されたことを示します。この記事では、HTTP ステータス コード 200 の具体的な意味と使用法について説明します。まず、HTTP ステータス コードの分類を理解しましょう。ステータス コードは、1xx、2xx、3xx、4xx、5xx の 5 つのカテゴリに分類されます。このうち、2xx は成功応答を示します。 200 は 2xx で最も一般的なステータス コードです

httpリクエスト415エラーの解決策 httpリクエスト415エラーの解決策 Nov 14, 2023 am 10:49 AM

解決策: 1. リクエスト ヘッダーの Content-Type を確認する; 2. リクエスト本文のデータ形式を確認する; 3. 適切なエンコード形式を使用する; 4. 適切なリクエスト メソッドを使用する; 5. サーバー側のサポートを確認する。

ミストロック王国の自然の中に建物を建てることはできますか? ミストロック王国の自然の中に建物を建てることはできますか? Mar 07, 2024 pm 08:28 PM

ミストロック王国でプレイするとき、プレイヤーはさまざまな材料を集めて建物を建てることができます。多くのプレイヤーは、野生で建物を建てるべきかどうか知りたいと考えています。ミストロック王国では、建物は野生で建てることはできません。祭壇の範囲内になければなりません。 。ミストロック王国の自然の中に建物を建てることはできますか? 答え: いいえ。 1. ミストロックキングダムの荒野には建物を建てることができません。 2. 建物は祭壇の範囲内に建てなければなりません。 3. プレイヤーは自分で精霊の火の祭壇を設置できますが、範囲を離れると建物を建設できなくなります。 4. 山に直接穴を掘って家にすることもできるので、建築資材を消費する必要がありません。 5. プレイヤー自身が建てた建物には快適性のメカニズムがあり、内装が良いほど快適性が高くなります。 6. 高い快適性により、プレイヤーに属性ボーナスがもたらされます。

C++ を使用して HTTP ストリーミングを実装するにはどうすればよいですか? C++ を使用して HTTP ストリーミングを実装するにはどうすればよいですか? May 31, 2024 am 11:06 AM

C++ で HTTP ストリーミングを実装するにはどうすればよいですか? Boost.Asio と asiohttps クライアント ライブラリを使用して、SSL ストリーム ソケットを作成します。サーバーに接続し、HTTP リクエストを送信します。 HTTP 応答ヘッダーを受信して​​出力します。 HTTP 応答本文を受信して​​出力します。

Ubuntu PHP サービスが正常に起動しない場合の解決策 Ubuntu PHP サービスが正常に起動しない場合の解決策 Feb 28, 2024 am 10:48 AM

タイトル: Ubuntu で PHP サービスが正常に起動できない問題を解決する方法と具体的なコード例 Ubuntu を使用して Web サイトやアプリケーションを構築する場合、PHP サービスが正常に起動できず、Web サイトが起動できないという問題がよく発生します。正常にアクセスできなくなるか、アプリケーションが正常に機能できなくなります。この記事では、Ubuntu で PHP サービスが正常に開始できない問題を解決する方法を紹介し、読者がそのような問題をすぐに解決できるように具体的なコード例を示します。 1. PHP 設定ファイルを確認する まず、PHP 設定ファイルを確認する必要があります。

See all articles