继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

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

程序员面试吧
关注TA
已关注
手记 18
粉丝 1
获赞 1

Apache HTTP是Windows和UNIX的开源Web服务器,也是最受欢迎的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的默认端口是80HTTPS443。详细列出了其他应用程序的默认端口。

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

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

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

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

(1)登录到Web服务器

(2)转到apache实例和bin文件夹

(3)用-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服务器是否正在运行?

(1)登录到Web服务器并进行grep的“ httpd”处理

ps -ef |grep httpd复制

(2)在监视仪表板上检查是否有任何警报
(3)检查您的apache IP:port是否可以在浏览器中访问
(4)使用netstat检查配置的IP和端口是否正在服务器上侦听

netstat -anlp |grep 80

6.如何安装Apache HTTP?

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

(1)使用源代码 –您可以下载源代码并进行编译。

从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命令。

(2)YUM存储库

如果您的服务器已连接到Internet或具有内部存储库,则可以使用yum进行安装。参考教程

yum install httpd

(3)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服务器安全的方法,包括以下几种。

(1)实施SSL

(2)与WAF(Web应用程序防火墙)(如ModSecurity等)集成

(3)使用基于云的安全提供程序

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

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

access.log –所有请求详细信息以及状态码

error.log –捕获apache或连接到后端中的所有错误

14.如何创建企业CSR?

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

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

15.什么是虚拟主机?

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

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

[mod_was_ap22_http.so]必须以httpd.conf文件形式添加才能与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 ”,但是也可以进行以下操作。

调试
信息
警告
注意
暴击
报警
能源
错误

21.什么是DocumentRoot?

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

Default DocumentRoot location is /var/www/html

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

Apache是Web服务器,并且它无法进行基于Java的应用程序部署。但是,您可以集成Java应用程序服务器,例如WebLogic,WebSphere和JBoss,在其中可以部署warear文件。
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.您使用什么工具进行日志分析?

可以使用GoAccessSumoLogic等诸多工具。

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

市场上有很多Web服务器,选择自己熟悉等即可,比如Nginx等。

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应用程序在负载下的总体性能。

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服务器,这是一些主要区别。

(1)Nginx是基于事件的Web服务器,其中Apache基于进程

(2)Nginx以比Apache更好的性能而闻名

(3)Apache支持Nginx不支持OpenVMS和IBMi的各种操作系统

(4)Apache已与Nginx仍在追赶的后端应用程序服务器进行了大量模块集成

(5)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服务器有哪些不同的风格?

(1)IBM HTTP Server –被称为IHS,通常与IBM WebSphere Application Server一起使用

(2)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-服务器太忙,无法处理请求,换句话说,服务不可用

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

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

TraceEnable off

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

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

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

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

tar  -xf   Apachetoolbox-1.5.72.tar.gz

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

./install.sh

它提供了mod_ip_forwardingmod_auth_mysqlmod_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访问。为此,您可以使用mod_authz_coremod_authz_host模块使用Require指令限制访问。

Require 10.0.0.2 10.0.0.4 192.168.34.23 192.168.34.23

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

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

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP