个性化阅读
专注于IT技术分析

44个实用的Apache Web Server面试问题及答案

Apache是​​最受欢迎的Web服务器, 如果你打算以中间件/系统/ Web管理员的身份工作, 则必须熟悉它。 Apache HTTP是Windows和UNIX的开源Web服务器。

几天前, 我写了有关WebSphere Interview Questions的文章, 许多人都要求写有关Apache Web Server的文章, 所以请继续。

在从初学者到专家级别的访谈中, 通常会询问以下问题。大多数组织将由中间件/系统管理员管理Web服务器以及Application Server和其他组件。

让我们开始实时面试问题与解答…

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和HTTPS443。签出此处列出的其他应用程序的默认端口。

3.你能告诉我重要的配置文件名称吗?

httpd.conf是Apache中使用的主要配置文件。

4.如何检查正在运行的Apache Web Server的版本?

有多种找到此方法的方法, 但更准确地说是:

  • 登录到Web服务器
  • 转到apache实例和bin文件夹
  • 用-v执行httpd以获取版本详细信息。
[[email protected] sbin]# ./httpd -v
Server version: Apache/2.2.15 (Unix)
Server built:   Jul 18 2016 15:24:00
[[email protected] sbin]#

或者, 你也可以使用rpm命令检查安装的版本。

[[email protected] ~]# rpm -qa |grep httpd
httpd-2.2.15-54.el6.centos.x86_64
httpd-tools-2.2.15-54.el6.centos.x86_64
[[email protected] ~]#

5.如何知道Web服务器是否正在运行?

有多种找到方法。

  1. 登录到Web服务器并使用grep执行” httpd”进程
ps -ef |grep httpd
  1. 在监视仪表盘中检查任何警报。
  2. 检查浏览器中是否可以访问你的apache IP:port

例如:http://yourapacheserver.com

  1. 使用netstat检查配置的IP和端口是否正在服务器上侦听
netstat -anlp |grep 80

6.如何安装Apache HTTP?

有三种可能的方法来安装此程序。

使用源代码–你可以下载源代码并进行编译。

  • 从http://httpd.apache.org/download.cgi下载最新版本
  • 使用tar实用程序或gzip实用程序提取源, 具体取决于文件类型:.tar或.tar.gz
tar xvf  httpd-1.2.3.tar
gzip -d httpd-1.2.4.tar.gz
  • 通过cd命令导航至提取源的位置, 并在终端上使用./configure命令对其进行配置
  • 然后使用make命令对其进行编译。
  • 最后, 使用make install命令进行安装。

如果要查找有关如何配置它的更多选项, 可以使用configure –help命令。

YUM存储库–如果你的服务器已连接到Internet或具有内部存储库, 则可以使用yum进行安装。

yum install httpd

RPM –你可以下载必要的RPM软件包并使用rpm命令。

rpm -ivh packagename.rpm

7.如何确保Apache仅侦听服务器上的一个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 Server上托管的网站?

有多种保护Apache Web服务器安全的方法, 包括以下几种。

  • 实现SSL
  • 与ModSecurity等WAF(Web应用程序防火墙)集成。
  • 使用基于云的安全提供程序

13. Apache生成哪些日志文件?

创建了两个流行的日志文件。

  • access.log –所有请求详细信息以及状态码
  • error.log –捕获apache或连接到后端中的所有错误

14.如何创建CSR?

你可以使用以下OpenSSL命令或在线生成CSR。

使用私钥创建新的CSR

openssl req -out geekflare.csr -newkey rsa:2048 -nodes -keyout geekflare.key

请查看OpenSSL备忘单以获取更多命令。

15.什么是虚拟主机?

Apache中的虚拟主机允许你在单个实例上托管多个网站。你可以创建基于IP或基于虚拟主机的名称。

16.连接到WebSphere需要什么模块?

必须在httpd.conf文件中添加mod_was_ap22_http.so才能与IBM WAS集成。

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”, 但是也可以进行以下操作。

  • debug
  • info
  • warn
  • notice
  • crit
  • alarm
  • emerg
  • error

21.什么是DocumentRoot?

DocumentRoot指令是一种配置, 你可以在其中指定将从中提供静态文件的文件夹位置。也称为WebRoot。

Default DocumentRoot location is /var/www/html

22.如何在Apache中部署war或JAVA应用程序?

恐怕Apache是​​Web服务器, 并且它无法进行基于Java的应用程序部署。但是, 你可以集成Java应用程序服务器, 例如WebLogic, WebSphere和JBoss, 在其中可以部署war, ear文件。

23. Apache Web服务器和Apache Tomcat有什么区别?

Apache Web是用于提供静态内容的HTTP服务器, 其中Tomcat是用于部署JSP文件的servlet容器。

你始终可以将Apache HTTP与Tomcat集成, 但是, 根据需要, 你可以选择其中之一。如果你需要适当的Web服务器, 则可以使用Apache HTTP或JSP-Servlet容器的Tomcat。

24. Apache如何充当代理服务器?

你可以使用mod_proxy模块用作代理服务器。 mod_proxy模块可用于连接到后端服务器, 例如Tomcat, WebLogic, WebSphere等。

25.如何配置Apache日志, 以便捕获服务请求所花费的时间?

你可以在LogFormat指令下的httpd.conf文件中添加”%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.geekflare.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.geekflare.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, SumoLogic或此处提到的一些方法。

27.你与Apache一起使用过哪些Web服务器?

同样, 你最好说实话, 但要知道, 市场上有很多Web服务器, 包括以下内容。

  • Nginx
  • Microsoft IIS
  • LiteSpeed
  • GWS

28.如何验证httpd.conf文件以确保没有配置语法错误?

httpd –t将帮助你检查语法。

[[email protected] httpd]# /usr/sbin/httpd -t
Syntax OK
[[email protected] httpd]#

另外, 你也可以使用apachectl命令。

[[email protected] ~]# /usr/sbin/apachectl configtest
Syntax OK
[[email protected] ~]#

29.如何执行Apache性能基准测试?

你可以使用ApacheBench, SIEGE之类的工具在包括Apache在内的Web服务器上执行负载测试。在线执行压力测试的另一种选择, 以查看Web应用程序在负载下的总体性能。

30.如果出现问题, 如何获得对Apache Web Server的支持?

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支持Nginx不支持OpenVMS和IBMi的各种操作系统
  • Apache已与Nginx仍在追赶的后端应用程序服务器进行了大量模块集成
  • Nginx轻巧, 可以迅速占领市场份额。如果你是Nginx的新手, 那么你可能有兴趣查看我在Nginx上的文章。

33.如果无法正常运行, 你将如何杀死Apache?

如果在Linux上运行, 则可以使用kill命令。

使用ps -ef | grep http找出Apache的PID

然后杀死它

kill $PIDNUMBER

如果正常杀死无效, 请尝试杀死-9

kill -9 $PIDNUMBER

如果在Windows上, 则从任务管理器结束Apache任务。

34.如果你不知道安装位置, 如何找到httpd.conf文件?

在Linux中, 可以使用find命令。

假设你知道它必须位于/ apps文件系统中, 那么可以使用以下命令。

find /apps -name httpd.conf

但是, 如果你不确定哪个文件系统, 则可以在/文件系统上查找, 但请记住, 根据文件系统的整体大小, 可能要花很长时间。

find / -name httpd.conf

35.你知道Apache Web服务器有哪些不同的风格?

  • IBM HTTP Server –被称为IHS, 通常与IBM WebSphere Application Server一起使用
  • Oracle HTTP Server-称为OHS, 通常与Oracle Weblogic服务器一起使用

36. Apache在数据中心位置在哪里?

你可以根据自己的经验进行解释, 但是, 通常对于面向Internet的应用程序, 它应该位于Internet DMZ网络中以及Intranet, 核心网络中。

但这又会因应用程序/组织而异。

37.如何在HTTP响应标头中隐藏服务器版本详细信息?

在httpd.conf文件中添加以下内容, 然后重新启动Web服务器

ServerTokens Prod
ServerSignature Off

这将隐藏版本并将服务器显示为”仅Apache”。

38. 200、403和503 HTTP错误代码是什么意思?

  • 200 –找到内容并投放
  • 403 –尝试访问受限制的文件/文件夹
  • 503-服务器太忙, 无法处理请求, 换句话说, 服务不可用。
  • 有关更多信息, 请参见HTTP响应代码信息图。

39.如何禁用跟踪HTTP请求?

在httpd.conf文件中添加以下内容, 然后重新启动实例

TraceEnable off

40.如何解决端口冲突问题?

netstat对解决端口冲突问题很有用。如果在单个服务器上运行多个实例, 则建议为监听指令配置绝对IP:Port。

41.如何安装第三方模块?

你可以使用Apache Toolbox。下载后, 使用tar实用程序将其解压缩。

tar  -xf   Apachetoolbox-1.5.72.tar.gz

使用cd命令导航到Apachetoolbox-1.5.72文件夹, 然后运行以下命令为Apache服务器选择模块。

./install.sh

它提供了诸如mod_ip_forwarding, mod_auth_mysql和mod_auth_samba之类的模块以与Apache Web服务器一起编译。尽管你可以手动包括这些模块, 但是使用Apache Toolbox更加容易。

42.如何为虚拟主机分配多个名称?

你可以使用ServerAlias指令, 如下所示。

ServerName  example.com  
ServerAlias    awesome.com  fantastic.com

43.如何限制上传大小?

我有一个Web应用程序, 允许用户上传文件, 如Word文档, pdf等。如何限制用户上传文件?

你可以使用LimitRequestBody指令来限制上传文件的大小。

<Directory "usr/local/apache2/uploads"> 
LimitRequestBody 9000 
</Directory>

分配给LimitRequestBody的值允许Apache接受并存储用户上传的9000字节的文件。你可以根据需要调整值。

44.如何限制IP访问?

你可能希望某些上下文根可由允许的IP访问。为此, 你可以使用Require指令使用mod_authz_core或mod_authz_host模块来限制访问。

Require 10.0.0.2 10.0.0.4 192.168.34.23 192.168.34.23

通过上述操作, 仅当请求来自列出的IP时, Apache才会处理请求。

你需要在要允许或拒绝访问资源的目录中指定Require指令。

总结

希望以上问题和答案能帮助你准备Web服务器管理员面试。

赞(0)
未经允许不得转载:srcmini » 44个实用的Apache Web Server面试问题及答案

评论 抢沙发

评论前必须登录!