澳门新浦京娱乐场网站-www.146.net-新浦京娱乐场官网
做最好的网站

澳门新浦京娱乐场网站关于Apache的25个初中级面试

Apache依然是世界上最受欢迎的Web服务器,这一方面归功于数量众多的功能强大的模块,它们可以协同运行,增强这款Web服务器的核心功能。本文介绍了一些实用的Apache模块,它们可以为你的Web服务器改善性能、内容分发和总体安全。

注:本文从自己的Markdown博客复制出,除标题字体加粗、代码风格改变、图片重新上传外其余均为markdown语法。

 

学习Linux服务器,编译最新的Apache 2.4.7服务器,服务器是CentOS。

改善性能的模块

 


Centos 编译安装 Apache 2.4 准备:
yum groupinstall "Development tools"

虽然最新版本的Apache本身运行良好,但是你可以通过部署诸多模块——这些模块可压缩输出、消除不必要的载荷以及优化HTML和CSS代码,优化这款Web服务器,从而减少耗用资源、改进内容分发。

标签(空格分隔): LAMP

原文:[关于Apache的25个初中级面试题]()

之前服务器是 yum install httpd 安装的 Apache,所以可能解决了部分依赖关系,在我编译安装的过程中,只需要再格外 yum 两个 devel 包:
yum install zlib-devel pcre-devel

默认情况下,在CentOS中,Apache在预派生(prefork)模式下运行其多路处理模块(MPM);在这种模式下,父进程负责派生足够多的子进程,以满足所有远程客户端试图访问服务器的要求。不过,按照客户端的需要动态管理进程不是非常高效,那是由于每次开始和终止操作很花时间和资源。ModPrefork解决了这个不足,它让你可以为等待客户端请求的备用Apache子实例配置最小(和最大)数量。 不过,这项功能不够灵活和敏捷,无法满足请求偶尔出现峰值的繁忙网站的需要。


Apache 求职面试提问
在这一节涵盖了25个有趣的Apache工作面试中会提出的问题,并附带有它们的答案,因此你可以方便的理解也许你之前从来没有见到过的一些有关于Apache的新事物。
在你开始阅读这篇文章之前,我们强烈建议你不要去死记硬背,万事首先都要尝试去放在实际场景中理解。

从官方下载:下载到/usr/local/src/
wget
wget
wget

ModWorker解决了ModPrefork的性能问题,它使用线程来满足大量请求的需要,耗用的系统资源比较少。想在CentOS下启用ModWorker,编辑文件/etc/sysconfig/httpd,去掉HTTPD=/usr/sbin/httpd.worker这一行的注释。然后运行命令service httpd restart,重启Apache。想确认Apache在什么模式下运行,请使用命令apachectl –l,列出Apache所有已装入模块、寻找worker.c。

原文:[关于Apache的25个初中级面试题]()

[TOC]

解压缩:
tar -xvf httpd-2.4.7.tar.gz
tar -xvf apr-1.5.0.tar.gz
tar -xvf apr-util-1.5.3.tar.gz

遗憾的是,ModWorker并非与所有Apache模块兼容,包括诸如ModPHP之类的常见模块。在启用它之前,你应该检查兼容性,需要的话还要另辟蹊径。比如说,要是你同时需要ModWorker和PHP,就可以使用Mod_FastCGI代替ModPHP。

Apache 求职面试提问
在这一节涵盖了25个有趣的Apache工作面试中会提出的问题,并附带有它们的答案,因此你可以方便的理解也许你之前从来没有见到过的一些有关于Apache的新事物。
在你开始阅读这篇文章之前,我们强烈建议你不要去死记硬背,万事首先都要尝试去放在实际场景中理解。

## 1.什么是Apache web服务器?
答案 : Apache web服务器HTTP是一个非常流行、功能强大并且开源,用于管理web站点并向网络提供web文件服务,它基于HTTP超文本传输协议运行,这一协议提供了服务器和客户端web浏览器通信的标准。它支持SSL,CGI文件,虚拟主机还有许多其它的功能特性。

一点文件操作:
mv apr-1.5.0 httpd-2.4.7/srclib/apr
mv apr-util-1.5.3 httpd-2.4.6/srclib/apr-util
cd httpd-2.4.7

借助ModPagespeed优化内容

[TOC]

## 2.如何检查 Apache 及其版本?
首先,使用rpm命令来检查Apache是否已经安装。 如果已经安装好了,那就使用httpd -v 命令来姜茶它的版本。
```bash

编译命令:
./configure --with-included-apr --enable-nonportable-atomics=yes --with-z

一旦你优化了Apache的服务器端,就可以开始改进内容分发了。ModPagespeed(

## 1.什么是Apache web服务器?
答案 : Apache web服务器HTTP是一个非常流行、功能强大并且开源,用于管理web站点并向网络提供web文件服务,它基于HTTP超文本传输协议运行,这一协议提供了服务器和客户端web浏览器通信的标准。它支持SSL,CGI文件,虚拟主机还有许多其它的功能特性。

澳门新浦京娱乐场网站 1

出奇的简单,因为默认就有 --enable-mods-shared=most ,模块化安装,以后自行到 httpd.conf 中决定是否开启模块,所以什么 --enable-deflate --enable-rewrite --enable-blablabla 等就完全不必要了。

你可以从源文件或通过二进制程序包来安装ModPagespeed。至于CentOS,你可以使用来自ModPagespeed下载页面( -ivh mod-pagespeed*.rpm来安装它。重启Apache,并运行命令apachectl -t -D DUMP_MODULES,确保ModPagespeed已安装和装入。在这个命令的输出中,你应该能在所列的模块当中找到pagespeed_module。

## 2.如何检查 Apache 及其版本?
首先,使用rpm命令来检查Apache是否已经安装。 如果已经安装好了,那就使用httpd -v 命令来姜茶它的版本。
```bash

[root@tecmint ~]# rpm -qa | grep httpd
httpd-devel-2.2.15-29.el6.centos.i686
httpd-2.2.15-29.el6.centos.i686
httpd-tools-2.2.15-29.el6.centos.i686

[root@tecmint ~]# httpd -v
Server version: Apache/2.2.15 (Unix)
Server built: Aug 13 2013 17:27:11

默认安装的是 event mpm,如果要用 worker ,就需要 --with-mpm=worker,或者干脆 --enable-mpms-shared=all,这样event、worker、prefork就会以模块化的方式安装,要用哪个就在 httpd.conf 里配置就好了。

接下来,打开配置文件/etc/httpd/conf.d/pagespeed.conf,检查所有的可用选项。在Allow from 127.0.0.1后面添加新的一行,让你的本地客户端IP地址出现在命令中;比如说,如果你的IP地址是192.168.0.2,就添加Allow from 192.168.0.2。一旦你重新装入Apache,就能够在

[root@tecmint ~]# rpm -qa | grep httpd
httpd-devel-2.2.15-29.el6.centos.i686
httpd-2.2.15-29.el6.centos.i686
httpd-tools-2.2.15-29.el6.centos.i686

[root@tecmint ~]# httpd -v
Server version: Apache/2.2.15 (Unix)
Server built: Aug 13 2013 17:27:11

澳门新浦京娱乐场网站 2

编译完成后:
make
make install

...

```

```

安装完毕后, 所有的东西都在 /usr/local/apache2 这个目录下,最重要的当属 conf/httpd.conf ,自行配置吧。

## 3.Apache 以那个用户运行? 主配置文件的位置在哪里?.
Apache以“nobody”用户和httpd守护进程运行。Apache主要的配置文件在:/etc/httpd/conf/httpd.conf(CentOS/RHEL/Fedora)还有/etc/apache2.conf (Ubuntu/Debian).

## 3.Apache 以那个用户运行? 主配置文件的位置在哪里?.
Apache以“nobody”用户和httpd守护进程运行。Apache主要的配置文件在:/etc/httpd/conf/httpd.conf(CentOS/RHEL/Fedora)还有/etc/apache2.conf (Ubuntu/Debian).

加载模块上,我尽可能的做了精简,仅开启如下:
必须:
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule authz_core_module modules/mod_authz_core.so
LoadModule userdir_module modules/mod_userdir.so
LoadModule dir_module modules/mod_dir.so
LoadModule mime_module modules/mod_mime.so

## 4.Apache 侦听 http 和 https 请求?
Apache默认在80端口侦听http,在443端口侦听https(需要SSL整数)。
你也可以使用 netstat 命令 来检查端口.
```bash

## 4.Apache 侦听 http 和 https 请求?
Apache默认在80端口侦听http,在443端口侦听https(需要SSL整数)。
你也可以使用 netstat 命令 来检查端口.
```bash

设置超时:
LoadModule reqtimeout_module modules/mod_reqtimeout.so

[root@tecmint ~]# netstat -antp | grep http
tcp 0 0 :::80z :::* LISTEN 1076/httpd 
tcp 0 0 :::443 :::* LISTEN 1076/httpd
[root@tecmint ~]# netstat -antp | grep http
tcp 0 0 :::80z :::* LISTEN 1076/httpd 
tcp 0 0 :::443 :::* LISTEN 1076/httpd

以下三个都是为了配合 Google mod_pagespeed 才开启,不用可不开:
LoadModule filter_module modules/mod_filter.so
LoadModule deflate_module modules/mod_deflate.so
LoadModule headers_module modules/mod_headers.so

```

```

Apache 日志:
LoadModule log_config_module modules/mod_log_config.so

## 5.如何在你的Linux机器上安装Apache服务器?
很简单,你可以使用任何诸如(RHEL/CentOS/Fedora)上的yum以及(Debian/Ubuntu)上的apt-get来在你的Linux上安装Apache服务器。
```bash

## 5.如何在你的Linux机器上安装Apache服务器?
很简单,你可以使用任何诸如(RHEL/CentOS/Fedora)上的yum以及(Debian/Ubuntu)上的apt-get来在你的Linux上安装Apache服务器。
```bash

指定 Apache 用户和组:
LoadModule unixd_module modules/mod_unixd.so

[root@tecmint ~]# yum install httpd
[root@tecmint ~]# apt-get install apache2
[root@tecmint ~]# yum install httpd
[root@tecmint ~]# apt-get install apache2

phpMyAdmin 要用:
LoadModule alias_module modules/mod_alias.so

```

```

wordpress, joomla 要用:
LoadModule rewrite_module modules/mod_rewrite.so

## 6.你可以在哪里找到Apache Web服务器的所有配置路径?
Apache默认的配置路径放在:(RHEL/CentOS/Fedora)中是在/etc/httpd/而(Debian/Ubuntu)是在/etc/apache2下。
```bash

## 6.你可以在哪里找到Apache Web服务器的所有配置路径?
Apache默认的配置路径放在:(RHEL/CentOS/Fedora)中是在/etc/httpd/而(Debian/Ubuntu)是在/etc/apache2下。
```bash

还有很多配置文件在 /usr/local/apache2/conf/extra 下面,在 httpd.conf 中可以选择是否加载,我加载的部分有:
配置 timeout, keepalive 的
httpd-default.conf

[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:15 apache2.conf
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:14 ports.conf
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

澳门新浦京娱乐场网站 3

配置 apache mpm 的
httpd-mpm.conf
这个很重要,性能优化基本上就靠这个文件了

```

[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:15 apache2.conf
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:14 ports.conf
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

配置网站目录的
httpd-userdir.conf

## 7.Apache 可以被TCP封装器固定吗?
不可以,它不可以被TCP封装器固定下来,因为它不支持Linux的libwrap.a库。

澳门新浦京娱乐场网站 4

配置虚拟主机的
httpd-vhosts.conf

## 8.如何在Apache中改变默认的端口,以及如何侦听其中的指令工作?
在httpd.conf文件中有一个指令“Listen”可以让我们改变默认的Apache端口。在Listen 指令的帮助下我们可以在不同的端口还有不同的接口进行Apache侦听。
假设你拥有多个IP注册到了你的Linux机器,并且想要Apache在一个特殊的以太网端口或接口接收HTTP请求。即使是这种要求也可以用Listen指令做到。
为了改变Apache的默认端口,请使用打开你的Apache主配置文件httpd.conf或者apache2.conf。
```bash

```

确定所有配置弄好后,就可以删除服务器上以前的 apache 了,至少我就是这么干的...:
service httpd stop
yum remove httpd

[root@tecmint ~]# vi /etc/httpd/conf/httpd.conf
[root@tecmint ~]# vi /etc/apache2/apache2.conf

## 7.Apache 可以被TCP封装器固定吗?
不可以,它不可以被TCP封装器固定下来,因为它不支持Linux的libwrap.a库。

把新编译安装的 Apache 2.4.6 拷贝到位:
cp /usr/local/apache2/bin/apachectl /etc/init.d/httpd

```
查找”Listen”这个单词, 注释原来的那一行并且在那一行下面写上你自己的指令。
```conf

## 8.如何在Apache中改变默认的端口,以及如何侦听其中的指令工作?
澳门新浦京娱乐场网站关于Apache的25个初中级面试题,CentOS编译安装Apache。在httpd.conf文件中有一个指令“Listen”可以让我们改变默认的Apache端口。在Listen 指令的帮助下我们可以在不同的端口还有不同的接口进行Apache侦听。
假设你拥有多个IP注册到了你的Linux机器,并且想要Apache在一个特殊的以太网端口或接口接收HTTP请求。即使是这种要求也可以用Listen指令做到。
为了改变Apache的默认端口,请使用打开你的Apache主配置文件httpd.conf或者apache2.conf。
```bash

编辑 /etc/init.d/httpd 文件,在首行 #!/bin/sh 下面加入两行:
# chkconfig: 35 85 15
# description: Activates/Deactivates Apache 2.4.6

# Listen 80
[root@tecmint ~]# vi /etc/httpd/conf/httpd.conf
[root@tecmint ~]# vi /etc/apache2/apache2.conf

将 Apache 加入开机自动启动:
chkconfig --add httpd
chkconfig httpd on

```

```
查找”Listen”这个单词, 注释原来的那一行并且在那一行下面写上你自己的指令。
```conf

最后一步,启动编译好的 Apache 2.4.7:
service httpd start

```conf

# Listen 80

下面如果要从外网访问,还需要设置防火墙,否则外网是无法访问的,默认情况下,linux只开启22端口的,所以要开放80端口:

# Listen 8080 或者 # Listen 172.16.16.1:8080

```

vi /etc/sysconfig/iptables
#这里是打开防火墙设置,在22端口的下面一行添加下面这行代码,如果要开启8080端口只需要把80改成8080既可
-A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT

```
保存文件并重启web服务器。
```bash

```conf

编辑器完毕只需要重启防火墙既可,命令为:

[root@tecmint ~]# service httpd restart
[root@tecmint ~]# service apache2 restart
# Listen 8080 或者 # Listen 172.16.16.1:8080

service iptables restart

```

```
保存文件并重启web服务器。
```bash

Ubuntu Server 14.04 安装Web服务器(Linux Apache MySQL PHP)  http://www.linuxidc.com/Linux/2015-06/119061.htm

## 9.我们可以一台机器上放两个Apache Web服务器么?
可以,我们在一台Linux机器上同时运行两个不同的Apache服务器,但条件是它们应该在不同的端口上侦听,而我们可以使用Apache的Listen指令来改变端口。

[root@tecmint ~]# service httpd restart
[root@tecmint ~]# service apache2 restart

Linux下安装配置PHP环境(Apache2)  http://www.linuxidc.com/Linux/2015-05/118062.htm

## 10.你知道Apache的DocumentRoot是啥意思么?
DocumentRoot的Apache意思是服务器上web文件的存储位置,默认的DocumentRoot是/var/www/html或者/var/www。这是可以被修改的,只要修改主机中的虚拟主机配置“DocumentRoot”就行了.。

```

Ubuntu 13.04 安装 LAMPVsftpd澳门新浦京娱乐场网站关于Apache的25个初中级面试题,CentOS编译安装Apache。WebminphpMyAdmin 服务及设置 http://www.linuxidc.com/Linux/2013-06/86250.htm

## 11.如何在不同的文件夹下面管理文件,还有什么是 Alias 指令?
是的,这可以借助于主Apache配置文件中的Alias指令做到,Alias指令可以对文件系统中的资源按图索骥,它使用一个URL路径,并且使用重定向到系统上的一个文件或目录来替换它。
使用Alias指令,它是Apache的mod_alias模块的一部分。Alias指令的默认语法是:
```

## 9.我们可以一台机器上放两个Apache Web服务器么?
可以,我们在一台Linux机器上同时运行两个不同的Apache服务器,但条件是它们应该在不同的端口上侦听,而我们可以使用Apache的Listen指令来改变端口。

CentOS 5.9下编译安装LAMP(Apache 2.2.44 MySQL 5.6.10 PHP 5.4.12) http://www.linuxidc.com/Linux/2013-03/80333p3.htm

Alias /images /var/data

## 10.你知道Apache的DocumentRoot是啥意思么?
DocumentRoot的Apache意思是服务器上web文件的存储位置,默认的DocumentRoot是/var/www/html或者/var/www。这是可以被修改的,只要修改主机中的虚拟主机配置“DocumentRoot”就行了.。

RedHat 5.4下Web服务器架构之源码构建LAMP环境及应用PHPWind http://www.linuxidc.com/Linux/2012-10/72484p2.htm

```
上面的示例中,放在/var/data/images前缀前面的/images url的意思是客户端请求“

## 11.如何在不同的文件夹下面管理文件,还有什么是 Alias 指令?
是的,这可以借助于主Apache配置文件中的Alias指令做到,Alias指令可以对文件系统中的资源按图索骥,它使用一个URL路径,并且使用重定向到系统上的一个文件或目录来替换它。
使用Alias指令,它是Apache的mod_alias模块的一部分。Alias指令的默认语法是:
```

Apache 的详细介绍:请点这里
Apache 的下载地址:请点这里

## 12.对于“DirectoryIndex”你是怎么理解的?
DirectoryIndex是当有一个来自主机的请求时Apache首先会去查找的文件.。例如:客户端发送请求www.example.com,Apache对此将到站点的文件根目录查找index文件(首先要展示的文件)。
DirectoryIndex的默认设置是.html index.html index.php,如果不是这个名字,你需要对httpd.conf或者apache2.conf中的DirectoryIndex值做出修改,以将其展示在你的客户端浏览器上。
```conf

Alias /images /var/data

更多CentOS相关信息见CentOS 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=14

#
# DirectoryIndex: sets the file that Apache will serve if a directory
# is requested.
#
# The index.html.var file (a type-map) is used to deliver content-
# negotiated documents. The MultiViews Option can be used for the
# same purpose, but it is much slower.
#
DirectoryIndex index.html index.html.var index.cgi .exe

```
上面的示例中,放在/var/data/images前缀前面的/images url的意思是客户端请求“

本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-03/128957.htm

```

## 12.对于“DirectoryIndex”你是怎么理解的?
DirectoryIndex是当有一个来自主机的请求时Apache首先会去查找的文件.。例如:客户端发送请求www.example.com,Apache对此将到站点的文件根目录查找index文件(首先要展示的文件)。
DirectoryIndex的默认设置是.html index.html index.php,如果不是这个名字,你需要对httpd.conf或者apache2.conf中的DirectoryIndex值做出修改,以将其展示在你的客户端浏览器上。
```conf

澳门新浦京娱乐场网站 5

## 13.当index文件丢失时如何使目录列表失效?
答案 : 如果站点根目录中的主index文件失效,那么Apache将会在浏览器上列出所有内容类似的文件,以替换站点主页。
为了关闭Apache目录列表,你可以在主配置文件中全局的设置,或者在.htaccess文件中部分的设置如下规则。
```

澳门新浦京娱乐场网站 6

<Directory /var/www/html>
Options -Indexes
</Directory>
#
# DirectoryIndex: sets the file that Apache will serve if a directory
# is requested.
#
# The index.html.var file (a type-map) is used to deliver content-
# negotiated documents. The MultiViews Option can be used for the
# same purpose, but it is much slower.
#
DirectoryIndex index.html index.html.var index.cgi .exe

```

澳门新浦京娱乐场网站 7

## 14.Apache Web 服务器有些什么不同的日志文件?
Apache Web服务器的默认日志文件是访问日志“/var/log/httpd/access_log”和错误日志:/var/log/httpd/error_log”。

```

## 15.你是怎样理解错误日志中的“connection reset by peer”的?
当服务器正在向请求提供服务时终端用户中断连接,我们就会在错误日志中看到“connection reset by peer“。

## 13.当index文件丢失时如何使目录列表失效?
答案 : 如果站点根目录中的主index文件失效,那么Apache将会在浏览器上列出所有内容类似的文件,以替换站点主页。
为了关闭Apache目录列表,你可以在主配置文件中全局的设置,或者在.htaccess文件中部分的设置如下规则。
```

## 16.什么是Apache的虚拟主机?
虚拟主机部分包含的信息包括站点名称,文档根路径,目录索引,服务器管理员邮箱,错误日志文件路径等等。
你可以随意为你的域添加你需要的指令,但是要运行一个站点,至少要配置量个参数服务器名称和文档根目录。 在Linux机器上,通常我们在httpd.conf文件的末尾来设定我们的虚拟主机部分的相关配置。
虚拟主机示例
```conf

<Directory /var/www/html>
Options -Indexes
</Directory>
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot /www/docs/dummy-host.example.com
ServerName dummy-host.example.com
ErrorLog logs/dummy-host.example.com-error_log
CustomLog logs/dummy-host.example.com-access_log common
</VirtualHost>

```

```
ServerAdmin : 通常是指站点拥有者的电子邮箱,错误和通知可以发到里面。
DocumentRoot : web文件在服务器上存放位置(必须配置).
ServerName : 通过浏览器访问站点时的域名(必须配置).
ErrorLog : 日志文件的位置,里面记录了所有与该站点相关的日志。

## 14.Apache Web 服务器有些什么不同的日志文件?
Apache Web服务器的默认日志文件是访问日志“/var/log/httpd/access_log”和错误日志:/var/log/httpd/error_log”。

## 17.< Location>和< Directory>之间有什么区别?
<Location>是用来设定和URL/web服务器的地址栏相关的元素的。
<Directory>是指服务器上某对象在文件系统中的位置。

## 15.你是怎样理解错误日志中的“connection reset by peer”的?
当服务器正在向请求提供服务时终端用户中断连接,我们就会在错误日志中看到“connection reset by peer“。

## 18.什么是Apache虚拟托管?
Apache虚拟托管是指,在单个web服务器上托管多个web站点。Apache 可以设定两种类型的虚拟主机:基于名称的虚拟托管和基于IP的虚拟主机托管。
更多相关信息,请参阅[如何在Apache中创建基于Name/IP的虚拟主机](

## 16.什么是Apache的虚拟主机?
虚拟主机部分包含的信息包括站点名称,文档根路径,目录索引,服务器管理员邮箱,错误日志文件路径等等。
你可以随意为你的域添加你需要的指令,但是要运行一个站点,至少要配置量个参数服务器名称和文档根目录。 在Linux机器上,通常我们在httpd.conf文件的末尾来设定我们的虚拟主机部分的相关配置。
虚拟主机示例
```conf

## 19.你怎么理解Apache的MPM?
MPM意思是Multi ProcessingModules,实际上是指Apache遵循的一些机制,用来接受和完成对web服务器的请求。

澳门新浦京娱乐场网站 8

## 20.Worker和Prefork MPM之间的区别是什么?
它们都是MPM,,Worker和prefork有它们各自在Apache上的运行机制。它们完全依赖于你想要以哪一种模式启动你的Apache。
Worker和MPM基本的区别在于它们产生子进程的处理过程.。在Prefork MPM中,一个主httpd进行被启动,这个主进程会管理所有其它子进程为客户端请求提供服务。而在worker MPM中一个httpd进程被激活,则会使用不同的线程来为客户端请求提供服务。
Prefork MPM 使用多个子进程,每一个进程带有一个线程而 worker MPM 使用多个子进程,每一个进程带有多个线程。
Prefork MPM中的连接处理, 每一个进程一次处理一个连接而在Worker mpm中每一个线程一次处理一个连接。
内存占用Prefork MPM占用庞大的内存,而Worker占用更小的内存。

<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot /www/docs/dummy-host.example.com
ServerName dummy-host.example.com
ErrorLog logs/dummy-host.example.com-error_log
CustomLog logs/dummy-host.example.com-access_log common
</VirtualHost>

## 21.“LimitRequestBody”的应用是什么,还有如何在你的上传中加入限制?
LimitRequestBody指令被用来在上传大小上做一个限制。例如:我想要在/var/www/html/tecmin/uploads目录中加入100000字节的限制. 那么你就需要在Apache配置文件中加入下面的指令。
``conf

澳门新浦京娱乐场网站 9

<Directory "/var/www/html/tecmint/uploads">
LimitRequestBody 100000
</Directory>

```
ServerAdmin : 通常是指站点拥有者的电子邮箱,错误和通知可以发到里面。
DocumentRoot : web文件在服务器上存放位置(必须配置).
ServerName : 通过浏览器访问站点时的域名(必须配置).
ErrorLog : 日志文件的位置,里面记录了所有与该站点相关的日志。

```

## 17.< Location>和< Directory>之间有什么区别?
<Location>是用来设定和URL/web服务器的地址栏相关的元素的。
<Directory>是指服务器上某对象在文件系统中的位置。

## 22.mod_perl和mod_php是什么?
mod_perl是一个随同Apache一起编译的Apache模块,用来做Perl脚本的简单集成并提升其性能。mod_php用来做web服务器PHP脚本的简单集成,它在Apache进程中嵌入了PHP解释器。它强制Apache子进程使用更多的内存,并且只能在Apache上使用,但是仍然很流行。

## 18.什么是Apache虚拟托管?
Apache虚拟托管是指,在单个web服务器上托管多个web站点。Apache 可以设定两种类型的虚拟主机:基于名称的虚拟托管和基于IP的虚拟主机托管。
更多相关信息,请参阅[如何在Apache中创建基于Name/IP的虚拟主机](

## 23.Mod_evasive是什么?
它是一个保护你的web服务器不受像DDOS之类的web攻击的第三方模块,因为它一次只执行一个任务,所以执行得很不错。
更多信息,请阅读这篇文章,它会指导你[如何在Apache中安装并配置mod_evasive](

## 19.你怎么理解Apache的MPM?
MPM意思是Multi ProcessingModules,实际上是指Apache遵循的一些机制,用来接受和完成对web服务器的请求。

## 24.httpd.conf文件中的Loglevel调试是什么?
在Loglevel Debug选项的帮助下,我们可以在错误日志中获取或者记录更多的信息,以帮助我们调试问题。

## 20.Worker和Prefork MPM之间的区别是什么?
它们都是MPM,,Worker和prefork有它们各自在Apache上的运行机制。它们完全依赖于你想要以哪一种模式启动你的Apache。
Worker和MPM基本的区别在于它们产生子进程的处理过程.。在Prefork MPM中,一个主httpd进行被启动,这个主进程会管理所有其它子进程为客户端请求提供服务。而在worker MPM中一个httpd进程被激活,则会使用不同的线程来为客户端请求提供服务。
Prefork MPM 使用多个子进程,每一个进程带有一个线程而 worker MPM 使用多个子进程,每一个进程带有多个线程。
Prefork MPM中的连接处理, 每一个进程一次处理一个连接而在Worker mpm中每一个线程一次处理一个连接。
内存占用Prefork MPM占用庞大的内存,而Worker占用更小的内存。

## 25.mod_ssl有什么用以及SSL在Apache中如何工作?
Mod_ssl是一个Apache模块,它使Apache可以在一个安全的加密环境中建立连接和传输数据。
使用SSL证书,所有的登录信息和其他重要的保密信息都会以加密的方式在Internet上进行传输,这会防止我们的数据被窃取或IP欺骗。
怎样在Apache中使用SSL
每当https请求到达,Apache都会执行以下三步:
Apache生成它的私钥并且将私钥转换为.CSR文件(证书签发请求)。然后Apache发送.csr文件给CA(证书管理中心)。CA收到.csr文件并转换为.crt (证书)然后再发回给Apache来完成https连接请求。

## 21.“LimitRequestBody”的应用是什么,还有如何在你的上传中加入限制?
LimitRequestBody指令被用来在上传大小上做一个限制。例如:我想要在/var/www/html/tecmin/uploads目录中加入100000字节的限制. 那么你就需要在Apache配置文件中加入下面的指令。
``conf

这就是目前被面试官问到的最流行的25的问题。

<Directory "/var/www/html/tecmint/uploads">
LimitRequestBody 100000
</Directory>

```

## 22.mod_perl和mod_php是什么?
mod_perl是一个随同Apache一起编译的Apache模块,用来做Perl脚本的简单集成并提升其性能。mod_php用来做web服务器PHP脚本的简单集成,它在Apache进程中嵌入了PHP解释器。它强制Apache子进程使用更多的内存,并且只能在Apache上使用,但是仍然很流行。

## 23.Mod_evasive是什么?
它是一个保护你的web服务器不受像DDOS之类的web攻击的第三方模块,因为它一次只执行一个任务,所以执行得很不错。
更多信息,请阅读这篇文章,它会指导你[如何在Apache中安装并配置mod_evasive](

## 24.httpd.conf文件中的Loglevel调试是什么?
在Loglevel Debug选项的帮助下,我们可以在错误日志中获取或者记录更多的信息,以帮助我们调试问题。

## 25.mod_ssl有什么用以及SSL在Apache中如何工作?
Mod_ssl是一个Apache模块,它使Apache可以在一个安全的加密环境中建立连接和传输数据。
使用SSL证书,所有的登录信息和其他重要的保密信息都会以加密的方式在Internet上进行传输,这会防止我们的数据被窃取或IP欺骗。
怎样在Apache中使用SSL
每当https请求到达,Apache都会执行以下三步:
Apache生成它的私钥并且将私钥转换为.CSR文件(证书签发请求)。然后Apache发送.csr文件给CA(证书管理中心)。CA收到.csr文件并转换为.crt (证书)然后再发回给Apache来完成https连接请求。

这就是目前被面试官问到的最流行的25的问题。

本文由澳门新浦京娱乐场网站发布于服务器,转载请注明出处:澳门新浦京娱乐场网站关于Apache的25个初中级面试