Apache は最も人気のある Web サーバーであり、ミドルウェア/システム/Web 管理者として働く場合は、Apache に精通している必要があります。 Apache HTTP は、Windows および UNIX 用のオープンソース Web サーバーです。
数日前、私は WebSphere の面接の質問について書きましたが、多くの皆様から Apache Web サーバーについて書いてほしいとのリクエストがあったので、ここに書きます。
初心者から専門家レベルまで、面接では次のような質問がよく聞かれます。ほとんどの組織では、Web サーバーがアプリケーション サーバーやその他のコンポーネントとともにミドルウェア/システム管理者によって管理されています。
リアルタイムのインタビューの質問と回答 を始めましょう…
1. Apache Web サーバーを停止/起動するにはどうすればよいですか?
Apache インスタンスの場所 >> bin フォルダーに移動し、apachectl スクリプトを実行することで再起動できます。
./apachectl stop
./apachectl start
/etc/init.d/ にあるスクリプトを使用することもできます。ほとんどの場合、「apache」または「httpd」という名前が付けられます。
/etc/init.d/apache stop
/etc/init.d/apache start
別の手順はサービスを使用することです
httpd stop
service httpd start
2. HTTP および HTTPS のデフォルトのポートは何ですか?
HTTP のデフォルト ポートは 80 で、HTTPS は 443 です。ここにリストされている他のアプリケーションのデフォルト ポートを確認してください。
3. 重要な設定ファイル名を教えていただけますか?
httpd.conf は、Apache で使用される主な構成ファイルです。
4. 実行中の Apache Web サーバーのバージョンを確認するにはどうすればよいですか?
これを見つける方法は複数ありますが、より正確には次のようになります。
- Webサーバーにログインする
- Apache インスタンスと bin フォルダーに移動します
- -v を指定して httpd を実行して、バージョンの詳細を取得しました。
[root@lab sbin]# ./httpd -v
Server version: Apache/2.2.15 (Unix)
Server built: Jul 18 2016 15:24:00
[root@lab sbin]#
あるいは、 rpm コマンドを使用して、インストールされているバージョンを確認することもできます。
[root@lab ~]# rpm -qa |grep httpd
httpd-2.2.15-54.el6.centos.x86_64
httpd-tools-2.2.15-54.el6.centos.x86_64
[root@lab ~]#
5. Web サーバーが実行中かどうかを確認するにはどうすればよいですか?
これを見つける方法は複数あります。
- Webサーバーにログインし、「httpd」プロセスをgrepします。
ps -ef |grep httpd
- 監視ダッシュボードでアラートがないか確認してください。
- ApacheのIP:ポートがブラウザでアクセス可能かどうかを確認してください
例: http://yourapacheserver.com
- netstat を使用して、設定された IP とポートがサーバー上でリッスンしているかどうかを確認します。
netstat -anlp |grep 80
6. Apache HTTP をインストールするにはどうすればよいですか?
これをインストールするには 3 つの方法があります。
ソース コード を使用する – ソースをダウンロードしてコンパイルできます。
- http://httpd.apache.org/download.cgi から最新リリースをダウンロードします。
-
ファイルの種類 (
.tarまたは.tar.gzに応じて、tarユーティリティまたはgzipユーティリティを使用してソースを抽出します。
tar xvf httpd-1.2.3.tar
gzip -d httpd-1.2.4.tar.gz
-
cdコマンドを使用してソースを抽出した場所に移動し、ターミナルで./configureコマンドを使用して構成します。 -
次に、
makeコマンドを使用してコンパイルします。 -
最後に、
make installコマンドを使用してインストールします。
構成方法に関するオプションをさらに知りたい場合は、
configure --help
コマンドを使用できます。
YUM リポジトリ – サーバーがインターネットに接続されているか、内部リポジトリがある場合は、yum を使用してインストールできます。
yum install httpd
RPM – 必要な RPM パッケージをダウンロードし、rpm コマンドを使用できます。
rpm -ivh packagename.rpm
7. Apache がサーバー上の 1 つの IP アドレスだけをリッスンするようにするにはどうすればよいですか?
これは、サーバー上に複数の IP がある場合に必要になることがよくあります。 Apache が指定された IP でのみリッスンするようにするには、Listen ディレクティブで IP とポートを明示的に指定する必要があります。
元:
Listen 10.10.10.10:80
8. Apache が非 root/nobody ユーザーで実行されていることを確認するにはどうすればよいですか?
これは、httpd.conf ファイルに User & Group ディレクティブを追加することで実行できます。
User apache
Group apache
上記の設定例では、「apache」ユーザーで開始されることが保証されます。サーバーを構成する前に、サーバー上にユーザーが存在することを確認する必要があります。
9. ディレクトリのインデックス作成を無効にするにはどうすればよいですか?
それぞれのディレクトリディレクティブで「Options -Indexes」を使用できます。
元:
<Directory />
Options -Indexes
</Directory>
10. リダイレクトを可能にするにはどのモジュールが必要ですか?
mod_rewrite は リダイレクトを担当します。これは httpd.conf ファイルでコメントを解除する必要があります。
LoadModule rewrite_module modules/mod_rewrite.so
11. リスニング ポートをデフォルトから別のポートに変更できますか?
はい、 Listen ディレクティブでポート番号を指定することで可能です。
例: Apache が 9000 ポートで 10.10.10.10 IP アドレスをリッスンするようにします。
Listen 10.10.10.10:9000
12. Apache Web サーバーでホストされている Web サイトを保護するにはどうすればよいですか?
Apache Web サーバーを保護するには、次のような複数の方法があります。
- SSLの導入
- ModSecurityなどのWAF(Webアプリケーションファイアウォール)との統合。
- クラウドベースのセキュリティプロバイダーの使用
13. Apache によって生成されるログ ファイルは何ですか?
2 つの一般的なログ ファイルが作成されます。
- access.log – ステータス コードを含むすべてのリクエストの詳細
- error.log – Apache 内またはバックエンドへの接続内のすべてのエラーをキャプチャします。
14. CSR を作成するにはどうすればよいですか?
次の OpenSSL コマンドを使用するか、 オンラインで CSR を生成でき ます。
秘密キーを使用して新しい CSR を作成するには
openssl req -out .csr -newkey rsa:2048 -nodes -keyout .key
その他のコマンドについては、OpenSSL チートシートを確認してください。
15. 仮想ホスティングとは何ですか?
Apache の仮想ホスティングを使用すると、単一のインスタンスで複数の Web サイトをホストできます。 IP ベース または 名前ベース の仮想ホスティングを作成できます。
16. WebSphere に接続するにはどのようなモジュールが必要ですか?
IBM WAS と統合するには、
mod_was_ap22_http.so
httpd.conf
ファイルに追加する必要があります。
17. ログレベルをデバッグモードにするにはどうすればよいですか?
多くの場合、問題のトラブルシューティングを行っていて、より詳細な情報を取得したい場合に必要になります。 httpd.conf ファイルで次のことを確認することで、ログ レベルをデバッグに変更できます。
LogLevel debug
18. SSL を有効にするにはどのモジュールが必要ですか?
SSL を実装する前に、mod_ssl モジュールのコメントを解除する必要があります。
LoadModule auth_basic_module modules/mod_ssl.so
19. WebLogic モジュール名は何ですか?
mod_wl_22.so
20. Apache で使用できるログ レベルは何ですか?
デフォルト設定は「 warn 」に設定されていますが、次のことも可能です。
- デバッグ
- 情報
- 警告する
- 知らせ
- クリティカル
- 警報
- 現れる
- エラー
21. DocumentRootとは何ですか?
DocumentRoot ディレクティブは、静的ファイルが提供されるフォルダーの場所を指定できる構成です。 WebRoot とも呼ばれます。
Default DocumentRoot location is /var/www/html
22. Apache で war または JAVA アプリケーションをデプロイするにはどうすればよいですか?
申し訳ありませんが、Apache は Web サーバーであり、Java ベースのアプリケーションをデプロイすることはできません。ただし、WebLogic、WebSphere、JBoss などの Java アプリケーション サーバーを統合して、war、ear ファイルをデプロイできます。
23. Apache Web サーバーと Apache Tomcat の違いは何ですか?
Apache Web は静的コンテンツを提供する HTTP サーバーであり、Tomcat は JSP ファイルをデプロイするサーブレット コンテナです。
Apache HTTP と Tomcat はいつでも統合できますが、要件に応じてどちらかを選択する必要があります。適切な Web サーバーが必要な場合は、Apache HTTP、または JSP サーブレット コンテナ用の Tomcat を使用します。
24. Apache はどのようにしてプロキシ サーバーとして機能することができますか?
mod_proxy モジュールを使用してプロキシ サーバーとして使用できます。 mod_proxy モジュールは、Tomcat、WebLogic、WebSphere などのバックエンド サーバーに接続するために使用できます。
25. リクエストの処理にかかった時間を記録できるように Apache ログを構成するにはどうすればよいですか?
httpd.conf ファイルの LogFormat ディレクティブの下に「 %D 」を追加すると、リクエストの処理にかかる応答時間をキャプチャできます。時間をマイクロ秒単位で表示します。
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %D" combined
Apache Web サーバーを再起動すると、結果が表示されます。
182.19.197.23 - - [02/Oct/2016:10:32:25 +0000] "GET / HTTP/1.1" 403 4961 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.116 Safari/537.36" 1515
182.19.197.23 - - [02/Oct/2016:10:32:25 +0000] "GET /icons/apache_pb.gif HTTP/1.1" 304 - "http://lab..com/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.116 Safari/537.36" 424
182.19.197.23 - - [02/Oct/2016:10:32:25 +0000] "GET /icons/poweredby.png HTTP/1.1" 304 - "http://lab..com/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.116 Safari/537.36" 472
26. ログ分析にはどのようなツールを使用しますか?
真実を話さなければなりませんが、アイデアを与えるには、GoAccess またはここで説明したいくつかを使用できます。
27. Apache とともに開発した Web サーバーは何ですか?
繰り返しますが、真実を伝えたほうがよいでしょうが、市場には次のような Web サーバーが数多く存在します。
- Nginx
- マイクロソフトIIS
- ライトスピード
- GWS
28. httpd.conf ファイルを検証して、構成構文エラーがないことを確認するにはどうすればよいですか?
httpd –t は構文をチェックするのに役立ちます。
[root@lab httpd]# /usr/sbin/httpd -t
Syntax OK
[root@lab httpd]#
あるいは、apachectl コマンドを使用することもできます。
[root@lab ~]# /usr/sbin/apachectl configtest
Syntax OK
[root@lab ~]#
29. Apache パフォーマンス ベンチマークを実行するにはどうすればよいですか?
ApacheBench、SIEGE などのツールを使用して、Apache を含む Web サーバーの負荷テストを実行できます。オンラインでストレス テストを実行して、Web アプリケーションが負荷の下で全体的にどのように動作するかを確認するもう 1 つのオプション。
30. 何か問題があった場合、Apache Web サーバーのサポートを受けるにはどうすればよいですか?
Apache はオープン ソース Web サーバーであるため、エンタープライズ レベルのサポートはありません。ただし、スタック オーバーフローで バグ レポートを 報告したり、質問したりすることはできます。
31. サーバーの再起動後に Web サーバーが確実に開始されるようにするにはどうすればよいですか?
Linux を実行している場合は、/etc/init.d/ にスクリプトを配置し、chkconfig コマンドを使用して起動時に起動できるようにすることができます。
apache というファイルを作成し、/etc/init.d の下に置いたとします。
chkconfig --add apache
chkconfig apache on
Windows の場合は、スタートアップの種類が「自動」が選択されていることを確認してください。
32. Apache と Nginx Web サーバーの違いは何ですか?
どちらも Web サーバーとして分類されますが、主な違いをいくつか紹介します。
- Nginx はイベントベースの Web サーバーですが、Apache はプロセスベースです
- Nginx は Apache よりも優れたパフォーマンスで知られています
- Apache は幅広い OS をサポートしますが、Nginx は OpenVMS と IBMi をサポートしません。
- Apache には、Nginx がまだ追いついているバックエンド アプリケーション サーバーと統合された多数のモジュールがあります。
- Nginx は軽量であり、急速に市場シェアを獲得しています。 Nginx を初めて使用する場合は、Nginx に関する私の記事をチェックすることに興味があるかもしれません。
33. グレースフルストップが機能しない場合、どうやって Apache を強制終了しますか?
Linux で実行している場合は、kill コマンドを使用できます。
ps -ef |grep http を使用して Apache の PID を確認します。
それなら殺してください
kill $PIDNUMBER
通常の kill が機能しない場合は、kill -9 を試してください。
kill -9 $PIDNUMBER
Windows の場合は、タスク マネージャーから Apache タスクを終了します。
34. インストール場所がわからない場合、httpd.conf ファイルを見つけるにはどうすればよいですか?
Linux では find コマンドを使用できます。
/apps ファイル システムに存在する必要があることがわかっている場合は、次のコマンドを使用できると仮定します。
find /apps -name httpd.conf
ただし、どのファイル システムがわからない場合は、/ ファイル システムで検索できますが、ファイル システム全体のサイズに応じて時間がかかる可能性があることに注意してください。
find / -name httpd.conf
35. Apache ウェブサーバーにはどのような種類がありますか?
- IBM HTTP Server – IHS として知られ、IBM WebSphere Application Server とともによく使用されます。
- Oracle HTTP Server – OHSとして知られ、Oracle Weblogicサーバーでよく使用されます
36. Apache はデータセンターのどこにありますか?
ご自身の経験に基づいて説明できますが、通常、インターネットに接続されたアプリケーションの場合はインターネット DMZ ネットワーク内にあり、イントラネットの場合はコア ネットワーク内にあります。
ただし、これもアプリケーション/組織によって異なります。
37. HTTP 応答ヘッダーでサーバーのバージョンの詳細を非表示にする方法は?
httpd.conf ファイルに以下を追加し、Web サーバーを再起動します。
ServerTokens Prod
ServerSignature Off
これにより、バージョンが非表示になり、サーバーが「 Apache 」のみとして表示されます。
38. HTTP エラー コード 200、403、503 は何を意味しますか?
- 200 – コンテンツが見つかり、正常に提供されました
- 403 – 制限されたファイル/フォルダーにアクセスしようとしました
- 503 – サーバーがビジーすぎてリクエストに対応できない、つまり – サービスが利用できません。
- 詳細については、HTTP 応答コードのインフォグラフィックを参照してください。
39. トレース HTTP リクエストを無効にするにはどうすればよいですか?
httpd.conf ファイルに以下を追加し、インスタンスを再起動します。
TraceEnable off
40. ポートの競合問題をトラブルシューティングするにはどうすればよいですか?
netstat は、ポートの競合問題のトラブルシューティングに役立ちます。単一サーバー上で複数のインスタンスを実行している場合は、Listen ディレクティブに対して絶対 IP:Port を構成することをお勧めします。
41. サードパーティ製モジュールをインストールするにはどうすればよいですか?
Apache ツールボックス
を利用できます。ダウンロードしたら、
tar
ユーティリティを使用して解凍します。
tar -xf Apachetoolbox-1.5.72.tar.gz
cd
コマンドを使用して
Apachetoolbox-1.5.72
フォルダーに移動し、以下のコマンドを実行して Apache サーバーのモジュールを選択します。
./install.sh
Apache Webサーバーでコンパイルするための
mod_ip_forwarding
、
mod_auth_mysql
、
mod_auth_samba
のモジュールを提供します。これらのモジュールを手動で含めることもできますが、Apache Toolbox を使用すると簡単です。
42. 仮想ホストに複数の名前を割り当てるにはどうすればよいですか?
以下に示すように、
ServerAlias
ディレクティブを使用できます。
ServerName example.com
ServerAlias awesome.com fantastic.com
43. アップロードサイズを制限するにはどうすればよいですか?
ユーザーが Word ドキュメント、PDF などのファイルをアップロードできる Web アプリケーションがあります。ユーザーによるファイルのアップロードを制限するにはどうすればよいですか?
LimitRequestBody
ディレクティブを使用して、アップロード ファイル サイズを制限できます。
<Directory "usr/local/apache2/uploads">
LimitRequestBody 9000
</Directory>
LimitRequestBody
に割り当てられた値により、Apache はユーザーによる 9000 バイトのファイル アップロードを受け入れて保存できます。要件に基づいて値を調整できます。
44. IPによるアクセスを制限するにはどうすればよいですか?
コンテキスト ルートの一部に、許可された IP からアクセスできるようにしたい場合があります。これを行うには、
mod_authz_core
または
mod_authz_host
モジュールを使用して、
Require
ディレクティブを使用してアクセスを制限します。
Require 10.0.0.2 10.0.0.4 192.168.34.23 192.168.34.23
上記を実行すると、リストされた IP からリクエストが行われた場合にのみ、Apache はリクエストを処理します。
リソースへのアクセスを許可または拒否するディレクトリ内で
Require
ディレクティブを指定する必要があります。
結論
上記の質問と回答が、Web サーバー管理者の 面接 の準備に役立つことを願っています。






![2021 年に Raspberry Pi Web サーバーをセットアップする方法 [ガイド]](https://i0.wp.com/pcmanabu.com/wp-content/uploads/2019/10/web-server-02-309x198.png?w=1200&resize=1200,0&ssl=1)




