网站搜索

面向初学者和中级人员的 25 个 Apache 面试问题


我们非常感谢所有读者对新的 Linux 访谈 部分的回应。现在我们已经开始针对面试问题进行分段学习,并继续今天的文章,重点关注基础中级 Apache 面试问题,这将帮助您做好准备。

在本节中,我们介绍了一些有趣的 25 个 Apache 求职面试问题及其答案,以便您可以轻松了解一些您以前可能不知道的有关 Apache 的新事物。

在阅读本文之前,我们强烈建议您不要试图记住答案,而应该先尝试在实际的基础上理解场景。

1.什么是Apache网络服务器?
2. 如何查看Apache及其版本?
[root@tecmint ~]# rpm -qa | grep httpd

httpd-devel-2.2.15-29.el6.centos.i686
httpd-2.2.15-29.el6.centos.i686
httpd-tools-2.2.15-29.el6.centos.i686
[root@tecmint ~]# httpd -v

Server version: Apache/2.2.15 (Unix)
Server built:   Aug 13 2013 17:27:11
3. Apache以哪个用户身份运行?以及主配置文件的位置?
4. Apache 在哪个端口同时监听 http 和 https?
[root@tecmint ~]# netstat -antp | grep http

tcp        0      0 :::80                       :::*                        LISTEN      1076/httpd          
tcp        0      0 :::443                      :::*                        LISTEN      1076/httpd
5. 如何在 Linux 机器上安装 Apache Server?
[root@tecmint ~]# yum install httpd
[root@tecmint ~]# apt-get install apache2
6. 在哪里可以找到Apache Web Server的所有配置目录?
[root@tecmint ~]# cd /etc/httpd/
[root@tecmint httpd]# ls -l
total 8
drwxr-xr-x. 2 root root 4096 Dec 24 21:44 conf
drwxr-xr-x. 2 root root 4096 Dec 25 02:09 conf.d
lrwxrwxrwx  1 root root   19 Oct 13 19:06 logs -> ../../var/log/httpd
lrwxrwxrwx  1 root root   27 Oct 13 19:06 modules -> ../../usr/lib/httpd/modules
lrwxrwxrwx  1 root root   19 Oct 13 19:06 run -> ../../var/run/httpd
[root@tecmint ~]# cd /etc/apache2
[root@tecmint apache2]# ls -l
total 84
-rw-r--r-- 1 root root  7113 Jul 24 16:15 apache2.conf
drwxr-xr-x 2 root root  4096 Dec 16 11:48 conf-available
drwxr-xr-x 2 root root  4096 Dec 16 11:45 conf.d
drwxr-xr-x 2 root root  4096 Dec 16 11:48 conf-enabled
-rw-r--r-- 1 root root  1782 Jul 21 02:14 envvars
-rw-r--r-- 1 root root 31063 Jul 21 02:14 magic
drwxr-xr-x 2 root root 12288 Dec 16 11:48 mods-available
drwxr-xr-x 2 root root  4096 Dec 16 11:48 mods-enabled
-rw-r--r-- 1 root root   315 Jul 21 02:14 ports.conf
drwxr-xr-x 2 root root  4096 Dec 16 11:48 sites-available
drwxr-xr-x 2 root root  4096 Dec  6 00:04 sites-enabled

7. Apache 可以使用 TCP 包装器来保护安全吗?

8. 如何更改默认 Apache 端口以及 Listen Directive 在 Apache 中如何工作?

假设您有多个 IP 分配给您的 Linux 机器,并且希望 Apache 在特殊的以太网端口或接口上接收 HTTP 请求,即使这可以使用 Listen 指令来完成。

要更改 Apache 默认端口,请使用 VI 编辑器打开 Apache 主配置文件 httpd.confapache2.conf 文件。

[root@tecmint ~]# vi /etc/httpd/conf/httpd.conf

[root@tecmint ~]# vi /etc/apache2/apache2.conf

搜索单词“Listen”,注释原始行并在该行下方编写您自己的指令。

Listen 80
Listen 8080

OR

Listen 172.16.16.1:8080

保存文件并重新启动 Web 服务器。

[root@tecmint ~]# service httpd restart

[root@tecmint ~]# service apache2 restart
9. 我们可以在一台机器上拥有两个 Apache Web 服务器吗?
10. Apache的DocumentRoot是什么意思?
11. 如何将文件托管在不同的文件夹中以及什么是 Alias 指令?

要使用 Alias 指令,它是 Apache mod_alias 模块的一部分。 Alias 指令的默认语法是:

Alias /images /var/data/images/

在上面的示例中,/images url 前缀为 /var/data/images 前缀,这意味着客户端将查询“http://www.example.com”。 com/images/sample-image.png”,Apache 将从 /var/data/images/sample-image 中获取“sample-image.png”文件。 png 在服务器上。它也称为 URL 映射。

12. 您对“DirectoryIndex”有何理解?

DirectoryIndex的默认设置是.html index.html index.php,如果你的第一个文件有不同的名称,你需要使更改 httpd.confapache2.conf 中的 DirectoryIndex 值,以将其显示到客户端浏览器。

#
DirectoryIndex: sets the file that Apache will serve if a directory
is requested.
#
The index.html.var file (a type-map) is used to deliver content-
negotiated documents.  The MultiViews Option can be used for the
same purpose, but it is much slower.
#
DirectoryIndex index.html index.html.var index.cgi .exe
13. 当索引文件丢失时如何禁用目录列表?

要停止 Apache 目录列表,您可以在全局主配置文件或特定网站的 .htaccess 文件中设置以下规则。

<Directory /var/www/html>
   Options -Indexes
</Directory>
14. Apache Web Server 的日志文件有哪些不同?
15. 错误日志中的“连接被对端重置”是什么意思?
16. Apache 中的虚拟主机是什么?

您可以随意添加域所需的任意数量的指令,但工作网站的两个最小条目是ServerNameDocumentRoot。我们通常在 Linux 计算机中的 httpd.conf 文件底部定义虚拟主机部分。

示例虚拟主机
<VirtualHost *:80>
   ServerAdmin [email 
   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
</VirtualHost>
  1. ServerAdmin:通常是网站所有者的电子邮件地址,可以将错误或通知发送到该地址。
  2. DocumentRoot :网络文件在服务器中的位置(必需)。
  3. ServerName :您要从网络浏览器访问的域名(必需)。
  4. ErrorLog:它是记录所有域相关日志的日志文件的位置。
17.<位置>和<目录>有什么区别?
  1. 用于设置与Web服务器的URL/地址栏相关的元素。
  2. 指文件系统对象在服务器上的位置
18. 什么是 Apache 虚拟主机?

有关更多信息,请阅读如何在 Apache 中创建基于名称/IP 的虚拟主机。

19.您对Apache中的MPM有何理解?
20. Worker 和 Prefork MPM 有什么区别?
  1. Worker 和 MPM 之间的基本区别在于它们生成子进程的过程。在 Prefork MPM 中,启动一个主 httpd 进程,该主进程开始管理所有其他子进程以服务客户端请求。然而,在工作 MPM 中,有一个 httpd 进程处于活动状态,并且它使用不同的线程来服务客户端请求。
  2. Prefork MPM 使用多个子进程,每个子进程包含一个线程,而工作者 MPM 使用多个子进程,每个子进程包含多个线程。
  3. 连接处理 在 Prefork MPM 中,每个进程一次处理一个连接,而在 Worker mpm 中,每个线程一次处理一个连接。
  4. 内存占用 Prefork MPM 内存占用较大,其中 Worker 内存占用较小。
21.“LimitRequestBody”有什么用以及如何限制上传?

例如:我想在文件夹 /var/www/html/tecmin/uploads 中设置 100000 字节的限制。因此,您需要在 Apache 配置文件中添加以下指令。

<Directory "/var/www/html/tecmint/uploads">
LimitRequestBody 100000
</Directory>
22.什么是mod_perl和mod_php?
  1. mod_perl 是一个 Apache 模块,它使用 Apache 进行编译,以便于集成并提高 Perl 脚本的性能。
  2. mod_php 用于通过 Web 服务器轻松集成 PHP 脚本,它将 PHP 解释器嵌入到 Apache 进程中。它强制 Apache 子进程使用更多内存,并且仅适用于 Apache,但仍然非常流行。
23.什么是Mod_evasive?

有关更多信息,请阅读指导您如何在 Apache 中安装和配置 mod_evasive 的文章。

24. httpd.conf 文件中的 Loglevel debug 是什么?
25. mod_ssl 有什么用以及 SSL 如何与 Apache 配合使用?
SSL 如何与 Apache 配合使用

每当 https 请求到来时,Apache 都会执行以下三个步骤:

  1. Apache 生成其私钥并将该私钥转换为 .CSR 文件(证书签名请求)。
  2. 然后 Apache 将 .csr 文件发送到 CA(证书颁发机构)。
  3. CA 将获取 .csr 文件并将其转换为 .crt(证书),并将该 .crt 文件发送回 Apache 以确保安全完成https连接请求。

这些只是最近面试官提出的最常见的 25 个问题,请提供您在最近的面试中遇到的更多面试问题,并通过下面的评论部分帮助其他人。

我们还建议您阅读我们之前关于 Apache 的文章。

  1. 13 个 Apache Web 服务器安全和强化技巧
  2. 如何使用 Rsync 同步两个 Apache Web 服务器/网站

此外,我们很自豪地宣布,TecMint Ask问题/答案部分的 Beta 版本已经推出。如果您对任何 Linux 主题有疑问。请加入我们并在 https://www.howtoing.com/ask/ 上发布您的问题/疑问。

我将在以后的文章中提出更多关于DNS邮件服务器、PHP等的面试问题,直到那时 Geeky 并连接到 TecMint.com