{{ v.name }}
{{ v.cls }}类
{{ v.price }} ¥{{ v.price }}
本文涵盖了25个有趣的apache工作面试中会提出的问题,并附带有它们的答案,因此你可以方便的理解也许你之前从来没有见到过的一些有关于apache的新事物.
在你开始阅读这篇文章之前,我们强烈建议你不要去死记硬背,万事首先都要尝试去放在实际场景中理解.
答案:apacheweb服务器http是一个非常流行、功能强大并且开源,用于管理web站点并向网络提供web文件服务.它基于http超文本传输协议运行,这一协议提供了服务器和客户端web浏览器通信的标准.它支持ssl,cgi文件,虚拟主机还有许多其它的功能特性.
答案:首先,使用rpm命令来检查apache是否已经安装.如果已经安装好了,那就使用httpd-v命令来姜茶它的版本.
[root@tecmint~]#rpm-qa|grephttpdhttpd-devel-2.2.15-29.el6.centos.i686httpd-2.2.15-29.el6.centos.i686httpd-tools-2.2.15-29.el6.centos.i686
[root@tecmint~]#httpd-vserverversion:apache/2.2.15(unix)serverbuilt:aug13201317:27:113.apache以那个用户运行?主配置文件的位置在哪里?
答案:apache以“nobody”用户和httpd守护进程运行.apache主要的配置文件在:/etc/httpd/conf/httpd.conf(centos/rhel/fedora)还有/etc/apache2.conf(ubuntu/debian).
答案:apache默认在80端口侦听http,在443端口侦听https(需要ssl整数).你也可以使用netstat命令来检查端口.
[root@tecmint~]#netstat-antp|grephttptcp00:::80:::*listen1076/httpdtcp00:::443:::*listen1076/httpd5.如何在你的linux机器上安装apache服务器?
答案:很简单,你可以使用任何诸如(rhel/centos/fedora)上的yum以及(debian/ubuntu)上的apt-get来在你的linux上安装apache服务器.
[root@tecmint~]#yuminstallhttpd
[root@tecmint~]#apt-getinstallapache26.你可以在哪里找到apacheweb服务器的所有配置路径?
答案:apache默认的配置路径放在:(rhel/centos/fedora)中是在/etc/httpd/on而(debian/ubuntu)是在/etc/apache2下.
[root@tecmint~]#cd/etc/httpd/[root@tecminthttpd]#ls-ltotal8drwxr-xr-x.2rootroot4096dec2421:44confdrwxr-xr-x.2rootroot4096dec2502:09conf.dlrwxrwxrwx1rootroot19oct1319:06logs->../../var/log/httpdlrwxrwxrwx1rootroot27oct1319:06modules->../../usr/lib/httpd/moduleslrwxrwxrwx1rootroot19oct1319:06run->../../var/run/httpd
[root@tecmint~]#cd/etc/apache2[root@tecmintapache2]#ls-ltotal84-rw-r--r--1rootroot7113jul2416:15apache2.confdrwxr-xr-x2rootroot4096dec1611:48conf-availabledrwxr-xr-x2rootroot4096dec1611:45conf.ddrwxr-xr-x2rootroot4096dec1611:48conf-enabled-rw-r--r--1rootroot1782jul2102:14envvars-rw-r--r--1rootroot31063jul2102:14magicdrwxr-xr-x2rootroot12288dec1611:48mods-availabledrwxr-xr-x2rootroot4096dec1611:48mods-enabled-rw-r--r--1rootroot315jul2102:14ports.confdrwxr-xr-x2rootroot4096dec1611:48sites-availabledrwxr-xr-x2rootroot4096dec600:04sites-enabled7.apache可以被tcp封装器固定吗?
答案:不可以,它不可以被tcp封装器固定下来,因为它不支持linux的libwrap.a库.
答案:在httpd.conf文件中有一个指令“listen”可以让我们改变默认的apache端口.在listen指令的帮助下我们可以在不同的端口还有不同的接口进行apache侦听.
假设你拥有多个ip注册到了你的linux机器,并且想要apache在一个特殊的以太网端口或接口接收http请求,即使是这种要求也可以用listen指令做到.
为了改变apache的默认端口,请使用打开你的apache主配置文件httpd.conf或者apache2.conf
[root@tecmint~]#vi/etc/httpd/conf/httpd.conf[root@tecmint~]#vi/etc/apache2/apache2.conf
查找”listen”这个单词,注释原来的那一行并且在那一行下面写上你自己的指令
#listen80listen8080orlisten172.16.16.1:8080
保存文件并重启web服务器.
[root@tecmint~]#servicehttpdrestart[root@tecmint~]#serviceapache2restart9.我们可以一台机器上放两个apacheweb服务器么?
答案:可以,我们在一台linux机器上同时运行两个不同的apache服务器,但条件是它们应该在不同的端口上侦听,而我们可以使用apache的listen指令来改变端口.
答案:documentroot的apache意思是服务器上web文件的存储位置,默认的documentroot是/var/www/html或者/var/www.这是可以被修改的,只要修改主机中的虚拟主机配置“documentroot”就行了.
答案:是的,这可以借助于主apache配置文件中的alias指令做到.alias指令可以对文件系统中的资源按图索骥,它使用一个url路径,并且使用重定向到系统上的一个文件或目录来替换它.
使用alias指令,它是apache的mod_alias模块的一部分.alias指令的默认语法是:
alias/images/var/data/images/
上面的示例中,放在/var/data/images前缀前面的/imagesurl的意思是客户端请求
“http://www.example.com/images/sample-image.png”会让apache从服务器上的/var/data/images/sample-image.png取“sample-image.png”文件.它也被称为url映射.
答案:directoryindex是当有一个来自主机的请求时apache首先会去查找的文件.例如:客户端发送请求www.example.com,apache对此将到站点的文件根目录查找index文件(首先要展示的文件).
directoryindex的默认设置是.htmlindex.htmlindex.php,如果不是这个名字,你需要对httpd.conf或者apache2.conf中的directoryindex值做出修改,以将其展示在你的客户端浏览器上.
##directoryindex:setsthefilethatapachewillserveifadirectory#isrequested.##theindex.html.varfile(atype-map)isusedtodelivercontent-#negotiateddocuments.themultiviewsoptioncanbeusedforthe#samepurpose,butitismuchslower.#directoryindexindex.htmlindex.html.varindex.cgi.exe
答案:如果站点根目录中的主index文件失效,那么apache将会在浏览器上列出所有内容类似的文件,以替换站点主页.
为了关闭apache目录列表,你可以在主配置文件中全局的设置,或者在.htaccess文件中部分的设置如下规则.
答案:apacheweb服务器的默认日志文件是访问日志“/var/log/httpd/access_log”和错误日志:/var/log/httpd/error_log”.
答案:当服务器正在向请求提供服务时终端用户中断连接,我们就会在错误日志中看到“connectionresetbypeer“.
答案:虚拟主机部分包含的信息包括站点名称,文档根路径,目录索引,服务器管理员邮箱,错误日志文件路径等等。
你可以随意为你的域添加你需要的指令,但是要运行一个站点,至少要配置量个参数服务器名称和文档根目录。在linux机器上,通常我们在httpd.conf文件的末尾来设定我们的虚拟主机部分的相关配置。
●serveradmin:通常是指站点拥有者的电子邮箱,错误和通知可以发到里面。
●documentroot:web文件在服务器上存放位置(必须配置).
●servername:通过浏览器访问站点时的域名(必须配置).
●errorlog:日志文件的位置,里面记录了所有与该站点相关的日志。
答案:
●
●
答案:apache虚拟托管是指,在单个web服务器上托管多个web站点。apache可以设定两种类型的虚拟主机:基于名称的虚拟托管和基于ip的虚拟主机托管。
答案:mpm意思是multiprocessingmodules,实际上是指apache遵循的一些机制,用来接受和完成对web服务器的请求。
答案:它们都是mpm,worker和prefork有它们各自在apache上的运行机制.它们完全依赖于你想要以哪一种模式启动你的apache.
●worker和mpm基本的区别在于它们产生子进程的处理过程.在preforkmpm中,一个主httpd进行被启动,这个主进程会管理所有其它子进程为客户端请求提供服务.而在workermpm中一个httpd进程被激活,则会使用不同的线程来为客户端请求提供服务.
●preforkmpm使用多个子进程,每一个进程带有一个线程而workermpm使用多个子进程,每一个进程带有多个线程.
●preforkmpm中的连接处理,每一个进程一次处理一个连接而在workermpm中每一个线程一次处理一个连接.
●内存占用preforkmpm占用庞大的内存,而worker占用更小的内存.
答案:limitrequestbody指令被用来在上传大小上做一个限制.
例如:我想要在/var/www/html/tecmin/uploads目录中加入100000字节的限制.那么你就需要在apache配置文件中加入下面的指令.
答案:
●mod_perl是一个随同apache一起编译的apache模块,用来做perl脚本的简单集成并提升其性能.
●mod_php用来做web服务器php脚本的简单集成,它在apache进程中嵌入了php解释器.它强制apache子进程使用更多的内存,并且只能在apache上使用,但是仍然很流行.
答案:它是一个保护你的web服务器不受像ddos之类的web攻击的第三方模块,因为它一次只执行一个任务,所有执行得很不错.
答案:在logleveldebug选项的帮助下,我们可以在错误日志中获取或者记录更多的信息,以帮助我们调试问题.
答案:mod_ssl是一个apache模块,它使apache可以在一个安全的加密环境中建立连接和传输数据。使用ssl证书,所有的登录信息和其他重要的保密信息都会以加密的方式在internet上进行传输,这会防止我们的数据被窃取或ip欺骗。
每当https请求到达,apache都会执行以下三步:
●apache生成它的私钥并且将私钥转换为.csr文件(证书签发请求).
●然后apache发送.csr文件给ca(证书管理中心).
●ca收到.csr文件并转换为.crt(证书)然后再发回给apache来完成https连接请求.
这就是目前被面试官问到的最流行的25的问题,请在下面评论部分分享你最近面试被问到的面试问题来帮助其他其他面试者。