LAMP环境搭建(二)

11.16/11.17 Apache默认虚拟主机

任何一个域名指向这台服务器,只要是没有对应的虚拟主机,就会由这个默认虚拟主机来处理。php

咱们先来编辑httpd的配置文件:css

#vim /usr/local/apache2.4/conf/httpd.confapache

搜索httpd-vhost,而后把这一行的注释#去掉。vim

而后再编辑虚拟主机配置文件:浏览器

#vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf缓存

将上图的内容修改成:安全

ServerAdmin指定管理员邮箱。DocumentRoot为该虚拟主机站点的根目录,网站的程序就放在这个目录下面。ServerName为网站的域名,ServerAlias为网站的第二域名,ServerAlias后面的域名能够写多个,用空格分开,但ServerName后面的域名不支持写多个。Errorlog为站点的错误日志,CustomLog为站点的访问日志。服务器

 

假如在虚拟主机配置文件中,咱们只定义了两个站点——abc.com和www.111.com,那么当第三个域名www.123.com指向本机的时候,当在浏览器访问www.123.com时,会去访问abc.com,也就是默认虚拟主机。curl

而后进行测试:测试


11.18 Apache用户认证

用户认证的功能就是在用户访问网站的时候,须要输入用户名密码才能顺利访问。一些比较重要的站点或者网站后台一般会加上用户认证,目的是保证安全。咱们先来对111.com站点作一个全站的用户认证:

这样httpd的配置文件配置完成,但还须要建立密码文件,操做步骤以下:

 

配置完成后,须要到宿主机上去修改一下hosts文件(C:\Windows\System32\drivers\etc\hosts),把111.com域名指向你的这台Linux机器,这样才能经过浏览器访问到111.com:

在最下面增长一行:

IP地址 111.com

保存hosts文件后,就能够用Windows上的浏览器去访问111.com了,这会弹出一个用于认证的提示框:

输入用户名和密码后,将会进入111.com网站。上面的操做是针对整个站点作的认证,也能够针对某个目录或者某个文件进行认证,好比要对111.com/admin/目录进行认证,只须要修改一个地方,把<Directory /data/wwwroot/111.com>改成<Directory /data/wwwroot/111.com/admin/>。若是是一个文件,好比在111.com/admin/123.php,则须要这样作:

但这样会有一个问题,网址中带有admin.php的连接都会弹出谁窗口。


11.19/11.20 域名跳转

域名跳转的做用:一个站点有多个域名会对SEO有影响,就是对百度搜索关键词的排名有影响,若是把多个域名所有跳转到指定的一个域名,这样以这个域名为中心,就能够把权重集中在这个域名上,因此搜索关键词的排名也就先前了,还有,若是以前的某个域名再也不使用了,可是搜索引擎还留着以前老域名的连接,这意味着用户可能会搜到咱们的网站而且点击老的域名,因此须要把老域名作个跳转,跳到新域名,这样用户搜的时候,也能够访问到网站。

咱们实现一个需求,把123.com域名跳转到111.com下,配置以下:

将上图内容修改成:

[root@zhangjin-120:/data/wwwroot/111.com]#/usr/local/apache2.4/bin/apachectl -t
Syntax OK
[root@zhangjin-120:/data/wwwroot/111.com]#/usr/local/apache2.4/bin/apachectl graceful
[root@zhangjin-120:/data/wwwroot/111.com]#/usr/local/apache2.4/bin/apachectl -M |grep rewrite
[root@zhangjin-120:/data/wwwroot/111.com]#vim /usr/local/apache2.4/conf/httpd.conf

开启rewrite模块:

而后进行测试:


11.21 Apache访问日志

访问日志做用很大,不只能够记录网站的访问状况,还能够在网站有异常发生时帮助咱们定位问题,好比有攻击时,是能够经过查看日志看到一些规律的。要配置httpd访问日志,首先要在主配置文件中定义访问日志的格式,打开主配置文件:

能够看到两个格式的日志,建议使用第一个,记录的信息会更全。%h为访问网站的IP;%l为远程登陆名,这个字段基本上为“-”;%u为用户名,当使用用户认证时,这个字段为认证的用户名;%t为时间;%r为请求的动做(好比用curl -I时就为HEADE);%s为请求的状态码写成%>s为最后的状态码;%b为传输数据的大小;%{Referer}i为referer信息;%{User-Agent}i为浏览器的标识。

而后编辑文件#vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf,更改文件内容以下图:


11.22 访问日志不记录静态文件

一个网站会有不少元素,尤为是图片、js、css等静态的文件进学多,用户每请求一个页面就会访问诸多的图片、js等静态元素,这些元素的请求都会被记录在日志中。若是一个站点访问量很大,那么访问日志文件增加会很是快,一天就能够达到几GB。这不只对于服务器的磁盘空间形成影响,更重要的是会影响磁盘的读写速度。这些巨量的静态元素请求记录到日志里意义不大,因此能够限制这些静态元素去记录日志,而且须要把日志按天归档,一天一个日志,这样也能够防止单个日志文件过大。配置以下:


11.23 访问日志切割

日志一直记录总有一天会把整个磁盘占满,因此有必要让它自动切割,并删除旧的日志文件。

咱们打开虚拟主机配置文件:

将上图更改成:


11.24 静态元素过时时间

在httpd的配置文件中,咱们是能够控制一个静态文件缓存时长的时间的,编辑虚拟主机配置文件,内容以下:

相关文章
相关标签/搜索