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的默认端口是80
和HTTPS443
。详细列出了其他应用程序的默认端口。
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,在其中可以部署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
等。
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_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访问。为此,您可以使用mod_authz_core
或mod_authz_host
模块使用Require
指令限制访问。
Require 10.0.0.2 10.0.0.4 192.168.34.23 192.168.34.23
通过上述操作,仅当请求来自列出的IP时,Apache才会处理请求。
您需要Require
在目录中指定要允许或拒绝访问资源的指令。