• 三十四、www服务apache进阶


    9.虚拟主机:部署多个站点,每个站点希望用不同的站点域名和站点目录,或者是不同的端口和不同的IP,则需要虚拟主机,简单理解就是一个http服务要配置多个站点,就要虚拟主机。

      apache虚拟主机分为三类:1.基于域名  2.基于端口   3.基于IP   但是在企业中,主要是基于域名的虚拟机。

    10.配置三个站点测试实战:

    www.etiantian.org   /var/html/www

    blog.etiantian.org   /var/html/blog

    bbs.etiantian.org   .var/html/bbs

      1)创建三个站点文件

       mkdir -p  /var/html/{www,blog,bbs}

      2)向文件中写入三个网址

      for name in bbs www blog;do echo "http://$name.etiantian.org">/var/html/$name/index.html done

      3)进行网点的查看

     [root@djw3 extra]# for name in bbs www blog;do cat /var/html/$name/index.html;done
    http://bbs.etiantian.org
    http://www.etiantian.org
    http://blog.etiantian.org

      4)从配置文件extra中,httpd-vhosts.conf 文件可以配置多个域名,如下所示,在配置中,这里的配置优先于主配置 文件。

    配置文件的更改后,还是访问不了,因为会有403表示没有权限,这里需要在directory中配置,表示允许客户端对站点进行访问,当请求到达此服务器后,先进行extra配置文件中的域名访问,  在进行默认首页的访问。

     

    如果系统盘安装在C盘,那么hosts文件的位置在C:WindowsSystem32driversetc,前面已经讲解,这里不做说明。

    进行测试,结果如下:

    1)www.etiantian.org   /var/html/www

    2)blog.etiantian.org   /var/html/blog

    3)bbs.etiantian.org   .var/html/bbs

    测试完毕,访问成功!除了基于域名外,还有基于端口和基于IP的,这里不做详解,一般用不上。基于端口的,在httpd.conf和extra/http-vhost文件中修改就可以访问了,常常用于内网自己人使用;基于IP的需要添加网卡或者配置虚拟IP,比较麻烦,因为不常用,这里不做说明。

    11、优化启动提示

    检查域名

    [root@djw3 ~]# /application/apache/bin/apachectl -t
    httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName

        或者 平滑重启

    [root@djw3 ~]# /application/apache/bin/apachectl graceful
    httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName

    都会有这句:Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName,表示没有一个完整的域名,使用127.0.0.1作为一个服务名

      fully qualified domain name ==FQDN  一个完整的域名

    通过在conf文件中修改,如下:

    重启启动,正常:

     

    12.apache日志轮询技术实现

      apache有两种日志格式:common和combined

    可以在conf下的httpd.conf下看到此格式:

    在extra添加的网站中进行配置,如下:

     

    如上,查看日志在 logs/bbs-access_log

    [root@djw3 logs]# cat bbs-access_log
    192.168.0.101 - - [23/May/2019:16:39:49 +0800] "GET / HTTP/1.1" 200 25
    192.168.0.101 - - [23/May/2019:16:39:50 +0800] "GET /favicon.ico HTTP/1.1" 404 209
    192.168.0.101 - - [23/May/2019:16:40:51 +0800] "GET / HTTP/1.1" 403 202
    192.168.0.101 - - [23/May/2019:16:40:51 +0800] "GET /favicon.ico HTTP/1.1" 404 209
    192.168.0.101 - - [23/May/2019:16:42:49 +0800] "GET / HTTP/1.1" 304 -

     但是以上方法并不具备轮询,我们需要轮询,所以需要安装轮询工具cronolog

    [root@localhost ~]# wget https://files.cnblogs.com/files/crazyzero/cronolog-1.6.2.tar.gz

    [root@localhost ~]# tar zxvf cronolog-1.6.2.tar.gz

    [root@localhost ~]# cd cronolog-1.6.2

    [root@localhost ~]# mkdir -p /usr/local/cronolog

    [root@localhost cronolog-1.6.2]# ./configure --prefix=/usr/local/cronolog

    [root@localhost cronolog-1.6.2]# make && make install

    按天轮询(生产环境常见用法,推荐)

     CustomLog "|/usr/local/cronolog/sbin/cronolog /application/apache/logs/djwaccess_bbs_%Y%m%d.log" combined

     ErrorLog "|/usr/local/cronolog/sbin/cronolog  /application/apahce/logs/djwerror_bbs_%Y%m%d.log" 

    (提示:cronolog轮询日志的正确写法,被轮询的日志路径要写全路径 (按天记录日志,日志不会自动覆盖))

     在配置中,进行配置:

    <VirtualHost *:80>
        ServerAdmin 825822293@qq.com
        DocumentRoot "/var/html/bbs"
        ServerName bbs.etiantian.org
        ServerAlias bbs.etiantian.com
    CustomLog "|/usr/local/sbin/cronolog /application/apache/logs/djwaccess_bbs_%Y%m%d.log" combined
    ErrorLog "|/usr/local/sbin/cronolog /application/apahce/logs/djwerror_bbs_%Y%m%d.log"
    </VirtualHost>

    想骂娘:这里花费了我大约3个小时,原因在于:百度的答案直接复制粘替后,感觉很简单,因为变更了配置文件,所以要重启服务,死活起不来。。。。。报错如下:

    [root@djw3 extra]# /application/apache/bin/apachectl graceful
    httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
    httpd not running, trying to start

    想了很久,我之前也没动过什么东西要,在网上狂找答案,各种解释都试了,还是不能解决,没办法,怀疑是软件坏了,最后重新安装正常,看来真是坏了,最后重新配置,结果又报想通过的错误,气的我想砸电脑,深呼吸,走两圈,看电视,心情好点。。。。还原配置文件,在试试重启,又好了,初步怀疑配置文件有问题,然后改一步,重启一次,改一补,重启一次,最后定位到http-vhost文件在主配置文件中开启就会apache启动不起来,并不是报错。冷静下:

      1)之前都可以,为什么现在不行,难道线程太多导致,不过就只是安装了个轮询日志cronolog

      2)难道是cronlog影响的

      3)重装cronolog ,测试还是不行。。。。我特么烦死了

     网上找答案,,,,,,,,读了十几个片段,还是没有明确的答案

      http-vhost文件和主配置文件看了又看,没问题呀,在放弃的时候,准备跳过的时候,死马当活马,看了一下日志,清空日志,在发送一次请求,原来如此:

     没有路径,想了想,纯找的文件,当时确实没有配置轮询日志路径,导致apache启动不起来,奇葩,看了下网上,apache配置文件如果不正确,就很容易导致启动不起来软件。修改完成后,果然正确,接着就是各种报错,各种修改,又花了好多时间,因为是重新安装的软件,各种细节都要重启弄,真是一朝粗心,弄了快3个小时。。。

      1)网上或者别人说的,要结合自己的环境

      2)以前没报错,现在报错,就肯定是现在变更改动的配置有问题,不要轻易删除再安装,在要回到当初的情况很难很难,简直自己给自己找麻烦

      3)要结合日志分析,效率更高

      4)网上虽然没有自己的答案,但有一个相近的,他是删除了一个 "|",导致也报相同的错,要举一反三,当时急得的,也没多想,失败。。。。估计他还没弄明白,以为是少了“|”,解释就是少了个“|”,本质就路径配错了。

    最后,打开日志目录,用tail -f  日志名称进行测试就ok了!

  • 相关阅读:
    postgresql数据迁移
    编译安装或者mysql启动时遇到的错误小记
    安装数据库时提示重启删除 以下注册信息则不用重启
    ​sql2008安装提示报错,.必须使用"角色管理工具"安装或配置Microsoft.net.framework 3.5 sp1
    windows10 安装jdk13.0.1 与 apache-jmeter-5.1.1
    Axure RP 9 获取验证码发送倒计时
    PHP 重定向跳转页面使用post传参
    用 PHPExcel 导入excel表格并展示到前台
    当失去焦点时 验证时分秒 并提示
    iptables 防止syn ddos ping攻击
  • 原文地址:https://www.cnblogs.com/dangjingwei/p/11185394.html
Copyright © 2020-2023  润新知