关于Apache的25个初中级⾯试题
Apache 求职⾯试提问
在这⼀节涵盖了25个有趣的Apache⼯作⾯试中会提出的问题,并附带有它们的答案,因此你可以⽅便的理解也许你之前从来没有见到过的⼀些有关于Apache的新事物.
南宁夜生活论坛 在你开始阅读这篇⽂章之前,我们强烈建议你不要去死记硬背,万事⾸先都要尝试去放在实际场景中理解.
1. 什么是Apache web服务器?
答案 : Apache web 服务器 HTTP 是⼀个⾮常流⾏、功能强⼤并且开源,⽤于管理web站点并向⽹络提供web⽂件服务. 它基于 HTTP 超⽂本传输协议运⾏, 这⼀协议提供了服务器和客户端web浏览器通信的标准. 它⽀持 SSL, CGI ⽂件, 虚拟主机还有许多其它的功能特性.
2. 如果检查 Apache 及其版本?
答案 : ⾸先,使⽤rpm命令来检查Apache是否已经安装. 如果已经安装好了,那就使⽤httpd -v 命令来姜茶它的版本.
[root@tecmint ~]# rpm -qa | grep httpd
httpd-devel-2.2.s.i686
httpd-2.2.s.i686
httpd-tools-2.2.s.i686
[root@tecmint ~]# httpd -v
Server version: Apache/2.2.15 (Unix)
Server built: Aug 13 2013 17:27:11
3. Apache 以那个⽤户运⾏? 主配置⽂件的位置在哪⾥?.
答案 : Apache 以“nobody”⽤户和httpd守护进程运⾏. Apache 主要的配置⽂件在: /etc/httpd/f (CentOS/RHEL/Fedora) 还有/f (Ubuntu/Debian).
4. Apache 侦听 http 和 https 请求?
答案 : Apache 默认在80端⼝侦听http,在443端⼝侦听https(需要SSL整数). 你也可以使⽤来检查端⼝.
[root@tecmint ~]# netstat -antp | grep http
tcp 0 0 :::80 :::* LISTEN 1076/httpd
tcp 0 0 :::443 :::* LISTEN 1076/httpd
5. 如何在你的Linux机器上安装Apache服务器?
答案 : 很简单, 你可以使⽤任何诸如(RHEL/CentOS/Fedora)上的yum以及(Debian/Ubuntu)上的apt-get来在你的Linux上安装Apache服务器.
[root@tecmint ~]# yum install httpd
[root@tecmint ~]# apt-get install apache2
6. 你可以在哪⾥找到Apache Web服务器的所有配置路径?
答案: Apache默认的配置路径放在: (RHEL/CentOS/Fedora) 中是在 /etc/httpd/ on ⽽(Debian/Ubunt
u) 是在/etc/apache2下 .
[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:f
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:f
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封装器固定吗?
答案 : 不可以,它不可以被TCP封装器固定下来,因为它不⽀持Linux的libwrap.a库.
8. 如何在Apache中改变默认的端⼝,以及如何侦听其中的指令⼯作?
答案 : 在f⽂件中有⼀个指令“Listen”可以让我们改变默认的Apache端⼝. 在Listen 指令的帮助下我们可以在不同的端⼝还有不同的接⼝进⾏Apache侦听.
假设你拥有多个IP注册到了你的Linux机器,并且想要Apache在⼀个特殊的以太⽹端⼝或接⼝接收HTTP请求, 即使是这种要求也可以⽤Listen指令做到.
为了改变Apache的默认端⼝,请使⽤打开你的Apache主配置⽂件 f 或者 f .
[root@tecmint ~]# vi /etc/httpd/f
[root@tecmint ~]# vi /etc/f
查找”Listen”这个单词, 注释原来的那⼀⾏并且在那⼀⾏下⾯写上你⾃⼰的指令.
# Listen 80
Listen 8080
OR
Listen 172.16.16.1:8080
保存⽂件并重启web服务器.
[root@tecmint ~]# rvice httpd restart
[root@tecmint ~]# rvice apache2 restart
9. 我们可以⼀台机器上放两个Apache Web服务器么?
答案 : 可以,我们在⼀台Linux机器上同时运⾏两个不同的Apache服务器, 但条件是它们应该在不同的端⼝上侦听,⽽我们可以使⽤Apache的Listen指令来改变端⼝.
10. 你知道Apache的DocumentRoot是啥意思么?
答案 : DocumentRoot 的 Apache 意思是服务器上web⽂件的存储位置, 默认的DocumentRoot是 /var/www/html 或者 /var/www. 这是可以被修改的,只要修改主机中的虚拟主机配置 “DocumentRoot”就⾏了.
11. 如何在不同的⽂件夹下⾯管理⽂件,还有什么是 Alias 指令?
答案 : 是的,这可以借助于主Apache配置⽂件中的Alias指令做到. Alias 指令可以对⽂件系统中的资源按图索骥, 它使⽤⼀个URL 路径,并且使⽤重定向到系统上的⼀个⽂件或⽬录来替换它.
使⽤Alias指令,它是Apache的 mod_alias 模块的⼀部分. Alias指令的默认语法是:
Alias /images /var/data/images/
上⾯的⽰例中, 放在/var/data/images 前缀前⾯的 /images url的意思是客户端请求“/images/sample-image.png”会让Apache从服务器上的/var/data/images/sample-image.png 取 “sample-image.png” ⽂件. 它也被称为URL 映射.
12. 对于“DirectoryIndex”你是怎么理解的?
答案 : DirectoryIndex 是当有⼀个来⾃主机的请求时Apache⾸先会去查找的⽂件. 例如: 客户端发送请求, Apache 对此将到站点的⽂件根⽬录查找index⽂件 (⾸先要展⽰的⽂件).
安卓手机杀毒 DirectoryIndex 的默认设置是 .html index.html index.php, 如果不是这个名字, 你需要对 f 或者 f 中
的 DirectoryIndex 值做出修改,以将其展⽰在你的客户端浏览器上.
#
# DirectoryIndex: ts the file that Apache will rve if a directory
# is requested.
#
# The index.html.var file (a type-map) is ud to deliver content-
# negotiated documents. The MultiViews Option can be ud for the
# same purpo, but it is much slower.
#
DirectoryIndex index.html index.html.i .exe
13. 当index⽂件丢失时如何使⽬录列表失效?
答案 : 如果站点根⽬录中的主index⽂件失效, 那么Apache将会在浏览器上列出所有内容类似的⽂件,以替换站点主页.
为了关闭Apache⽬录列表, 你可以在主配置⽂件中全局的设置,或者在.htaccess⽂件中部分的设置如下规则.
<Directory /var/www/html>
Options -Indexes
</Directory>
14. Apache Web 服务器有些什么不同的⽇志⽂件?
答案 : Apache Web 服务器的默认⽇志⽂件是访问⽇志 “/var/log/httpd/access_log” 和错误⽇志:/var/log/httpd/error_log”.
15. 你是怎样理解错误⽇志中的“connection ret by peer”的?
答案 : 当服务器正在向请求提供服务时终端⽤户中断连接, 我们就会在错误⽇志中看到“connection ret by peer“.
南矶山 16. 什么是Apache的虚拟主机?
答案 : 虚拟主机部分包含的信息包括站点名称,⽂档根路径,⽬录索引,服务器管理员邮箱,错误⽇志⽂件路径等等。
你可以随意为你的域添加你需要的指令,但是要运⾏⼀个站点,⾄少要配置量个参数服务器名称和⽂档根⽬录。在Linux机器上,通常我们在f⽂件的末尾来设定我们的虚拟主机部分的相关配置。
虚拟主机⽰例
<VirtualHost *:80>
ServerAdmin
DocumentRoot /www/
ErrorLog -error_log
CustomLog -access_log common
</VirtualHost>
1. ServerAdmin : 通常是指站点拥有者的电⼦邮箱,错误和通知可以发到⾥⾯。
那些的拼音2. DocumentRoot : web⽂件在服务器上存放位置(必须配置).
3. ServerName : 通过浏览器访问站点时的域名(必须配置).
4. ErrorLog : ⽇志⽂件的位置,⾥⾯记录了所有与该站点相关的⽇志。
17. <Location>和<Directory>之间有什么区别?
答案 :
道歉信给老师1. <Location> 是⽤来设定和URL/ web服务器的地址栏相关的元素的。
2. <Directory> 是指服务器上某对象在⽂件系统中的位置
18. 什么是Apache虚拟托管?
答案 : Apache虚拟托管是指,在单个web服务器上托管多个web站点。Apache 可以设定两种类型的虚拟主机:基于名称的虚拟托管和基于IP的虚拟主机托管。
更多相关信息,请参阅。
19. 你怎么理解Apache的MPM?
答案 : MPM意思是Multi Processing Modules,实际上是指Apache遵循的⼀些机制,⽤来接受和完成对web服务器的请求。
20. Worker 和 Prefork MPM之间的区别是什么?
答案 : 它们都是MPM, Worker 和 prefork 有它们各⾃在Apache上的运⾏机制. 它们完全依赖于你想要以哪⼀种模式启动你的Apache.
1. Worker 和 MPM基本的区别在于它们产⽣⼦进程的处理过程. 在Prefork MPM中, ⼀个主httpd进⾏被启动,这个主进程会管理所有其它
⼦进程为客户端请求提供服务. ⽽在worker MPM中⼀个httpd进程被激活,则会使⽤不同的线程来为客户端请求提供服务.
2. Prefork MPM 使⽤多个⼦进程,每⼀个进程带有⼀个线程⽽ worker MPM 使⽤多个⼦进程,每⼀个进程带有多个线程.
3. Prefork MPM中的连接处理, 每⼀个进程⼀次处理⼀个连接⽽在Worker mpm中每⼀个线程⼀次处理⼀个连接.
4. 内存占⽤ Prefork MPM 占⽤庞⼤的内存, ⽽Worker占⽤更⼩的内存.
21. “LimitRequestBody”的应⽤是什么,还有如何在你的上传中加⼊限制?
答案 : 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脚本的简单集成, 它在Apache进程中嵌⼊了PHP解释器. 它强制Apache⼦进程使⽤更多的内存,并且
只能在Apache上使⽤,但是仍然很流⾏.
23. Mod_evasive是什么?
答案: 它是⼀个保护你的web服务器不受像DDOS之类的web攻击的第三⽅模块,因为它⼀次只执⾏⼀个任务,所有执⾏得很不错.
更多信⼼,请阅读这篇⽂章,它会指导你 .
24. f⽂件中的Loglevel调试是什么?
湿疹是怎么引起的
答案 : 在Loglevel Debug 选项的帮助下, 我们可以在错误⽇志中获取或者记录更多的信息,以帮助我们调试问题.
25. mod_ssl 有什么⽤以及SSL在Apache中如何⼯作?
回答: Mod_ssl 是⼀个Apache模块, 它使Apache可以在⼀个安全的加密环境中建⽴连接和传输数据。使⽤SSL证书,所有的登录信息和其他重要的保密信息都会以加密的⽅式在Internet上进⾏传输,这会防⽌我们的数据被窃取或IP欺骗。
怎样在Apache中使⽤SSL
每当https请求到达,Apache都会执⾏以下三步:
1. Apache⽣成它的私钥并且将私钥转换为.CSR ⽂件 (证书签发请求).
生物科学类
2. 然后Apache发送 .csr ⽂件给 CA (证书管理中⼼).
湄公河惨案3. CA 收到.csr ⽂件并转换为 .crt (证书) 然后再发回给Apache 来完成https连接请求.
这就是⽬前被⾯试官问到的最流⾏的25的问题, 请在下⾯评论部分分享你最近⾯试被问到的⾯试问题来帮助其他其他⾯试者。