0509第十八次课:LAMP 2

浪子不回头ぞ 提交于 2019-11-29 19:55:06

LAMP 2

一、Apache虚拟主机

  • windows的hosts文件
  1. hosts文件路径

  2. 添加一个域名

    47.106.84.56 www.wxy.com www.test.com

  3. 测试访问

  • 开启Apache默认虚拟主机
  1. 开启默认虚拟主机需要修改apache配置文件

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

    去掉Include conf/extra/httpd-vhosts.conf 注释#号

  2. 修改虚拟主机文件

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

    修改内容:

    <VirtualHost *:80>
     DocumentRoot "/data/wwwroot/abc.com" 
     ServerNameabc.com
     ServerAlias www.abc.com www.123.com
     ErrorLog "logs/abc.com-error_log" 
     CustomLog "logs/abc.com-access_log" common 
    </VirtualHost>
    <VirtualHost *:80>
     DocumentRoot "/data/wwwroot/111.com"
     ServerName 111.com
     ServerAlias www.example.com
     ErrorLog "logs/111.com-error_log"
     CustomLog "logs/111.com-access_log" common
    </VirtualHost>
    

  3. 创建对应的目录和文件

    mkdir /data/wwwroot/

    mkdir /data/wwwroot/abc.com

    mkdir /data/wwwroot/111.com

    touch /data/wwwroot/abc.com/index.html

    echo "this is abc " > /data/wwwroot/abc.com/index.html

    touch /data/wwwroot/111.com/index.html

    echo "this is 111" > /data/wwwroot/111.com/index.html

  4. 测试

    验证和重新加载配置文件

    测试

    curl -x 172.18.11.153:80 111.com

    curl -x 172.18.11.153:80 abc.com

二、apache用户认证

  • 全局认证
  1. 修改虚拟主机配置文件

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

    针对111.com修改添加以下内容

    <Directory /data/wwwroot/111.com>
        AllowOverride AuthConfig
        AuthName "111.com user auth"
        AuthType Basic
        AuthUserFile /data/.htpasswd
        require valid-user
    </Directory>
    

  2. 创建密码

    /usr/local/apache2.4/bin/htpasswd -c -m /data/.htpasswd test

    -c参数创建 -m指定加密类型

  3. 测试

    /usr/local/apache2.4/bin/apachectl -t /usr/local/apache2.4/bin/apachectl graceful

    curl -x127.0.0.1:80 111.com

    401状态码就是需要密码

    curl命令-u参数可以输入账号密码: curl -x 172.18.11.153:80 111.com -u test:123 test是用户名,123是密码

三、域名跳转

域名跳转类似于将网页重新指向另一个网站,但区别是域名跳转会将域名本身重新指向网站,而不使用HTML或脚本来进行重新指向。当域名被设置为跳转至另一网站,域名的地址将不会保留在浏览器的URL栏中,该栏显示的会是新页面的URL。如果您希望保留该栏中的URL,则需要使用隐形跳转。

  1. 域名跳转文件配置

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

    添加以下内容

    <IfModule mod_rewrite.c>
       RewriteEngine on
    	  RewriteCond %{HTTP_HOST} !^111.com$
    	  RewriteRule ^/(.*)$ http://111.com/$1 [R=301,L]
    </IfModule>
    

    和一个不存在的域名:333.com

  2. 开启rewrite模块是否开启

    /usr/local/apache2.4/conf/httpd.conf

    去掉注释#

  3. 测试

    curl -x 172.18.11.153:80 3333.com

    301:永久跳转,302:临时跳转,200:文件存在,404:文件不存在

四、Apache访问日志

  1. 日志路径

    ll /usr/local/apache2.4/logs/

    查看

  2. 修改日志格式

    刚查看的日志信息包含:访问主机,用户,时间,访问的状态。我们也可以自定义日志的格式

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

    把之前的common,改为combined

  3. 再次查看日志内容

五、访问日志不记录静态文件

很多网站大多为静态网页,网页内部的图片、css文件等同样有其网址链接,如果不设置,这些无效的信息也将被存入访问日志中,会导致访问日志文件大小快速增加,占用大量存储空间。我们可以通过设置不记录某些文件来减少无效信息,节省内存资源。

  1. 上传一张1.png到111.com目录

  2. 访问并查看日志

    curl -x 172.18.11.153:80 111.com/1.png -I

    查看有.png结尾的日志

  3. 修改虚拟主机文件

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

    添加以下内容

    SetEnvIf Request_URI ".*\.gif$" img
    SetEnvIf Request_URI ".*\.jpg$" img
    SetEnvIf Request_URI ".*\.png$" img
    SetEnvIf Request_URI ".*\.bmp$" img
    SetEnvIf Request_URI ".*\.swf$" img
    SetEnvIf Request_URI ".*\.js$" img
    SetEnvIf Request_URI ".*\.css$" img
    CustomLog "logs/111.com-access_log" combined env=!img
    

  4. 查看结果

    修改完成后,重新加载,再次访问1.png,查看日志已经不再记录了

六、 访问日志切割

如果日志太大,总有一天会把磁盘占满,所以有必要每天进行日志切割,并删除老的日志

  1. 修改配置文件

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

修改一下内容

CustomLog "|/usr/local/apache2.4/bin/rotatelogs -l logs/111.com-access_%Y%m%d.log 86400" combined env=!img

  1. 参数解释
  • /usr/local/apache2.4/bin/rotatelogs:apache自带的分割日志的工具

  • -l:按当前系统时间为基准进行切割(我国为CST),否则默认UTC

  • %Y%m%d表示年月日,这样会每天记录一个带日期的日志文件

  • 86400(s)表示每天都进行切割,一天24小时等于86400秒

七、静态元素过期时间

浏览器访问网站的图片时会把静态的文件缓存在本地电脑里,这样下次再访问时就不用去远程下载了。 但是缓存多久呢?如果网站图片更新了呢,那么应该访问新图片才是。所以这就涉及到静态文件缓存时长的问题了,也就是“缓存过期时间”。

  1. 修改httpd.conf文件

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

    去掉注释#

    LoadModule expires_module modules/mod_expires.so

  2. 虚拟主机文件配置

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

    增加一下内容

     <IfModule mod_expires.c>
       ExpiresActive on //打开该功能的开关
       ExpiresByType image/gif "access plus 1 days"
       ExpiresByType image/jpeg "access plus 24 hours"
       ExpiresByType image/png "access plus 24 hours"
       ExpiresByType text/css "now plus 2 hour"
       ExpiresByType application/x-javascript "now plus 2 hours"
       ExpiresByType application/javascript "now plus 2 hours"
       ExpiresByType application/x-shockwave-flash "now plus 2 hours"
       ExpiresDefault "now plus 0 min" 
     </IfModule> 
    

  3. 测试

    浏览器访问图片,F12查看图片的状态码为200

    刷新以下查看变成了304

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!