Apache配置

查看Web服务器(apache)的配置文件

运行环境

 [root@verify01 ~]# cat /etc/redhat-release 
 CentOS release 6.6 (Final)
 [root@verify01 ~]# uname -a
 Linux verify01 2.6.32-504.12.2.el6.x86_64 #1 SMP Wed Mar 11 22:03:14 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
 [root@verify01 ~]# httpd -version
 Server version: Apache/2.2.15 (Unix)
 Server built:   Oct 16 2014 14:48:21

确认设置项目

服务器令牌

指定[server:]部分的信息级别可以在HTTP响应头中进行设置。
可选的参数为[Major|Minor|Min|Prod|OS|Full],其中默认值为[OS]。
我们可以设置一些参数然后检查响应头。检查方法可以使用w3m仅提取响应头的方式。
另一种方法是使用WireShark来查看。
以下是使用w3m -dump_head [serverIP|URL]命令确认的头部信息。

操作系统(默认)
 HTTP/1.1 200 OK
 Date: Sat, 11 Apr 2015 11:25:44 GMT
 Server: Apache/2.2.15 (CentOS)
 Last-Modified: Sat, 11 Apr 2015 11:25:14 GMT
 ETag: "4064d-44-51371227cebe8"
 Accept-Ranges: bytes
 Content-Length: 68
 Connection: close
 Content-Type: text/html; charset=UTF-8
生产
 HTTP/1.1 200 OK
 Date: Sat, 11 Apr 2015 11:29:21 GMT
 Server: Apache
 Last-Modified: Sat, 11 Apr 2015 11:25:14 GMT
 ETag: "4064d-44-51371227cebe8"
 Accept-Ranges: bytes
 Content-Length: 68
 Connection: close
 Content-Type: text/html; charset=UTF-8
完整显示所有信息
 HTTP/1.1 200 OK
 Date: Sat, 11 Apr 2015 11:30:09 GMT
 Server: Apache/2.2.15 (CentOS) DAV/2
 Last-Modified: Sat, 11 Apr 2015 11:25:14 GMT
 ETag: "4064d-44-51371227cebe8"
 Accept-Ranges: bytes
 Content-Length: 68
 Connection: close
 Content-Type: text/html; charset=UTF-8

根据上述结果,为了提高安全级别,最好选择Prod。换句话说,使用Full或默认的操作系统可能会暴露发行版和中间件的详细信息,从而可能造成攻击。

日志格式/自定义日志


用于指定access_log/error_log等输出格式和输出位置的参数。可以保持默认设置,但是自定义设置可以帮助分析。

日志格式

指定日志文件中输出信息的格式。默认情况下,以下格式已设置。

 構文:LogFormat formatnickname [nickname]
 LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

然而,用反斜杠转义的字符将直接记录在日志中。
%{hogehoge}i 指定了HTTP请求头的hogehoge。

如果将[LogFormat nickname1 nickname2]设定为,nickname2将引用nickname1。
此外,每个格式字符串都有其特定含义。对于默认的combined格式,其含义如下所示。

フォーマット意味%hリモートホスト(HostnameLookupsがOFFになっている場合はIPアドレスになる)%lリモートログ名(クライアントにidentdまたは類似デーモンが起動している場合に付与される)%uHTTP認証時に認証したユーザ名%tリクエストを受け付けた時刻%rリクエストの最初の行(“RequestMethod RequestURI RequestVersion”)%>sサーバが最後に返した応答コード(場合によっては301などによってリダイレクトされる場合があるため、どのタイミングかの考え方がある)%bレスポンスのバイト数(HTTPヘッダを除いた,bodyのみ)%{Referer}i直前に開いていたWebページのURL%{User-Agent}iユーザのWebブラウザについての情報

自定义日志记录

指定日志文件的名称和格式。默认情况下,如下所示。

 構文: CustomLog file|pipe format|nickname
 CustomLog logs/access_log combined

为了分析这个句子结构,与[ServerRoot]有关。默认情况下,它被设置为以下内容。

 ServerRoot "/etc/httpd"

ServerRoot指定的路径在httpd.conf文件中,指示的是/etc/httpd目录下。
因此,由CustomLog指定的日志文件将保存到先

 /etc/httpd/logs/access_log

然而,logs是一个符号链接。让我们验证一下它最终保存的位置。

 [root@verify01 httpd]# pwd
 /etc/httpd
 [root@verify01 httpd]# ll
 合計 8
 drwxr-xr-x. 2 root root 4096  4月 11 21:19 2015 conf
 drwxr-xr-x. 2 root root 4096  4月 11 20:13 2015 conf.d
 lrwxrwxrwx. 1 root root   19  4月 11 20:13 2015 logs -> ../../var/log/httpd
 lrwxrwxrwx. 1 root root   29  4月 11 20:13 2015 modules -> ../../usr/lib64/httpd/modules
 lrwxrwxrwx. 1 root root   19  4月 11 20:13 2015 run -> ../../var/run/httpd

因此,访问日志已保存在以下位置。

 /var/log/httpd/access_log

(基于名称的) 虚拟主机


当特定的主机名被指定请求时,执行另一个指定的处理。
是一种有效的技术,用于当访问具有指定主机名的URL时,显示其他文档根目录中的内容。
此外,还可以模拟将两个Web服务器集成为一个。作为配置,进行如下设置。

  NameVirtualHost *:80
  <VirtualHost *:80>
   ServerName www.virtual1.com //待ち受ける名前
   DocumentRoot /www/virtual1
  </virtualHost>
  <VirtualHost *:80>
   ServerName www.virtual2.com
   DocumentRoot /www/virtual2
  </VirtualHost>

# www.virtual1.comでリクエストされた場合は,/www/virtual1のコンテンツを表示,
# www.virtual2.comでリクエストされた場合は,/www/virtual2のコンテンツを表示させるように設定することが可能である.
bannerAds