Learning together

Learning together with open source fans. QQ群:8021887


  • 网站首页

  • 站内留言

  • 关于本站

  • 我的相册

  • 联系羽飞

  • 内容订阅
  • 第九章:Apache服务全攻略(二案例)

    作者: 羽飞 | 发布时间: 星期天, 02/07/2010 - 22:01 |

    理论部分,大家可以看一下这里

    http://www.freeopens.com/2010_02_625.html

    案例详解
    【案例1】建立Web服务器,并根据以下要求配置Web服务器。
    (1)设置主目录的路径为/var/www/web。
    (2)添加index.jsp文件作为默认文档。
    (3)设置Apache监听的端口号为8888。
    (4)设置默认字符集为GB2312。
    (5)建立一个名为temp的虚拟目录,其对应的物理路径是/usr/local/temp,并配置Web服务器允许该虚拟目录具备目录浏览和允许内容协商的多重视图特性。仅允许来自网络192.168.16.0/24客户机的访问。
    (6)建立一个名为private的虚拟目录,其对应的物理路径是/usr/local/private,并配置Web服务器对该虚拟目录启用用户认证,只允许用户名为abc和xyz的用户访问。

    mkdir /var/www/web
    mkdir /usr/local/temp
    mkdir /usr/local/private

    htpasswd -c /etc/httpd/mycreatpwd abc
    htpasswd  /etc/httpd/mycreatpwd xyz

    注意mycreatpwd的文件的权限,只需要设置成apaceh用户能访问就OK,而且尽可能不要放在网站的目录下,防止被下载。

    配置httpd.conf
    主要内容如下:

    DocumentRoot “/var/www/web”
    DirectoryIndex index.jsp
    Litsen 8888
    AddDefaultCharset GB2312

    Alias /temp “/usr/local/temp/”

    <Directory “/usr/local/tmp”>
        Options Indexes MultiViews
        Order allow,deny
        Allow from 10.0.0.0/8
    </Directory>

    Alias /private “/usr/local/private/”

    <Directory “/usr/local/private”>
        AuthType Basic
        AuthUserFile /etc/httpd/mycreatpwd
        AuthName “this is private directory,please Login:”
        Require user abc xyz
        AllowOverride None
        Order allow,deny
        Allow from all
    </Directory>

    【案例2】使用10.0.0.8和10.0.0.9两个IP地址创建基于IP地址的虚拟主机,其中IP地址为10.0.0.8的虚拟主机对应的主目录为/usr/www/web1,IP地址为10.0.0.9的虚拟主机对应的主目录为/usr/www/web2。
    在DNS服务器中建立www.example1.com和www.example2.com两个域名,使它们解析到同一个IP地址10.0.0.8上,然后创建基于域名的虚拟主机。其中域名为www.example1.com的虚拟主机对应的主目录为/usr/www/web1,域名为www.example2.com的虚拟主机对应的主目录为/usr/www/web2。

    mkdir -p /usr/www/web1
    mkdir /usr/www/web2

    <VirtualHost 10.0.0.8:80>
        ServerAdmin
    webmaster@localhost.com
        DocumentRoot /usr/www/web1
        ServerName localhost
        ErrorLog logs/web1-error_log
        CustomLog logs/web1-access_log common
    </VirtualHost>
    <VirtualHost 10.0.0.9:80>
        ServerAdmin
    webmaster@localhost.com
        DocumentRoot /usr/www/web2
        ServerName localhost
        ErrorLog logs/web2-error_log
        CustomLog logs/web2-access_log common
    </VirtualHost>

     cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0:1

    vim /etc/sysconfig/network-scripts/ifcfg-eth0:1

    改成
    DEVICE=eth0:1
    IPADDR=10.0.0.9

    注意:这里的HTTPD配置文件其它的都是默认。
    如果说这两个IP的端口不同的话,就要在Listen 80下面增加相应的监听端口!至于通过域名来实现的过程,留给大家自己做实验!!如果DNS不明白的话,可以参考我前面的课程!

    【案例3】让Web服务器支持CGI运行环境。

    ①安装perl-软件

    ②在主目录的权限设置的options里增加ExecCGI

    ③指定CGI文件的类型
    开启AddHandler cgi-script .cgi

    ④创建测试文件,内容如下
    #!/usr/bin/perl
    print “Content-type: text/html\n\n”;
    print “hello world!!!”;
    exit

    ⑤给文件可执行权限

    ⑥进行测试

    让Web服务器支持PHP运行环境。

    ①安装PHP软件
    php-common
    php-cli
    php

    ②创建测试文件内容如下
    <?
    phpinfo();
    ?>

    让Web服务器支持JSP运行环境。
    由于tomcat所依赖的软件比较多,所以建议大家用YUM进行安装

    1.下载或编译自己的mod_jk.so
    http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/linux/jk-1.2.21/mod_jk-1.2.21-apache-2.2.x-linux-i686.so
    http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/source/jk-1.2.28/tomcat-connectors-1.2.28-src.tar.gz

     将编译好的mod_jk.so或下载下来的mod_jk-1.2.21-apache-2.2.x-linux-i686.so拷贝到/etc/httpd/modules目录中,并将它重命名为mod_jk.so

    2、配置。
    在/etc/httpd/conf/下面建立两个配置文件mod_jk.conf和workers.properties。

    ①# vi mod_jk.conf
    添加以下内容:

    代码:
    # 指出mod_jk模块工作所需要的工作文件workers.properties的位置
    JkWorkersFile /etc/httpd/conf/workers.properties

    # Where to put jk logs
    JkLogFile /etc/httpd/logs/mod_jk.log

    # Set the jk log level [debug/error/info]
    JkLogLevel info

    # Select the log format
    JkLogStampFormat “[%a %b %d %H:%M:%S %Y]“

    # JkOptions indicate to send SSL KEY SIZE,
    JkOptions  +ForwardKeySize +ForwardURICompat -ForwardDirectories

    # JkRequestLogFormat set the request format
    JkRequestLogFormat “%w %V %T”

    # 将所有servlet 和jsp请求通过ajp13的协议送给Tomcat,让Tomcat来处理
    JkMount /servlet/*  worker1
    JkMount /*.jsp worker1

    ②# vi workers.properties
    添加以下内容:

    代码:
    # Defining a worker named worker1 and of type ajp13
    worker.list=worker1

    # Set properties for worker1
    worker.worker1.type=ajp13 
    worker.worker1.host=localhost 
    worker.worker1.port=8009
    worker.worker1.lbfactor=50 
    worker.worker1.cachesize=10 
    worker.worker1.cache_timeout=600 
    worker.worker1.socket_keepalive=1 
    worker.worker1.socket_timeout=300

    ③在Apache的配置文件中,增加关于加载mod_jk的语句:

    代码:
    LoadModule jk_module modules/mod_jk.so
    Include /etc/httpd/conf/mod_jk.conf

    ④最后编辑Tomcat的配置文件/etc/tomcat5/server.xml,在HOST段(倒数第四行)中加入:

    代码:
    <Context path=”" docBase=”/var/www/html” debug=”0″ reloadable=”true” crossContext=”true”/>

    ⑤在/var/www/html下建立一个index.jsp,启动Apache和Tomcat,用浏览器访问http://localhost/,应该可以看到正确的页面了。
    jsp测试页内容

    <HTML>
        <HEAD>
           <TITLE>test jsp page</TITLE>
        </HEAD>
     <BODY>
     <%out.println(“<h1>Hello World! </h1>”);%>
     <%out.println(“<h1>Congratulations! ! </h1>”);%>
     The time is <%= new java.util.Date() %>
     </BODY>
    </HTML>

    ★★★★★★★★★★★★★★★★★视频观看地址★★★★★★★★★★★★★★★★★★
    http://www.boobooke.com/v/bbk3741
    http://www.boobooke.com/v/bbk3742
    http://www.boobooke.com/v/bbk3743
    http://www.boobooke.com/v/bbk3744
    http://www.boobooke.com/v/bbk3745

    相关文章

    发表评论