美文网首页Linux
Linux实用工具-apache

Linux实用工具-apache

作者: QuietHeart | 来源:发表于2020-10-21 17:55 被阅读0次

    简单配置apache

    这里,只是为了“应急”,对其中的内容并没有深入学习。其中的内容都是实践之后的总结,关于配置的更多信息还需参考其他有价值的文章。

    功能

    Apache,是一种开放源码的 HTTP服务器,可以在大多数操作系统中运行,由于其多平台和安全性所以被广泛使用,是目前最流行的 Web服务器软件之一。

    配置好apache就可以把你机器做为一个web服务器,在其他机器的浏览器上面通过键入网址来访问你所指定的目录下的网页等文件。

    举例

    1、如何让自己的机器可以支持apache

    $sudo apt-get install apache2 apache2-mpm-prefork
    

    这样之后,如果在浏览器中敲入你的ip地址,会访问你机器上的 /var/www/index.html 文件。而你的web空间所在的文件目录就是 /var/www

    2、如何配置自己机器上面的web目录

    修改相关配置文件:

    $sudo vi /etc/apache2/sites-available/*
    $sudo /etc/init.d/apache2 restart
    

    这里,可以修改default文件,其中的DocumentRoot就指定了web空间对应的目录,默认都是/var/www。

    经过实践,修改这个文件的时候,后面的DocumentRoot指定会覆盖前面的。

    默认情况下,启动/etc/init.d/apache2之后,在浏览器中键入ip地址,会自动访问/etc/apache2/sites-available/default下配置的DocumentRoot下面的index文件,端口是80。

    在这里,directory字段只是封装一组参数,使之仅对文件空间中的某个目录及其子目录生效不要被它的名字所迷惑,没有它也可以的,但是不安全了。如果想要配置多个DocumentRoot,那么参照后面。

    这样在浏览起中敲入 http:///home/quietheart/testnet 就会访问testnet中的index文件了。默认的端口是80,用/etc/apache/sites-available/default下面的配置目录。

    3、如何在自己的机器上面配置多个web目录

    这里暂时只找到一种方法,就是利用多个端口访问不同的web目录。如下:

    3.1、建立一个新的web空间目录配置文件

    #touch /etc/apache2/sites-available/mysites
    

    这里,可以在/etc/apache2/sites-enabled建立一个指向mysites的链接,参照其中的000-default,不知道有什么用,不建立也行。

    3.2、编辑配置文件/etc/apache2/sites-available/mysites

    ServerAdmin webmaster@localhost
    DocumentRoot /home/quietheart/testnet/www
    

    这里,指定使用端口90的时候,把/home/quietheart/testnet/www做为web空间目录。这里的配置是最简最简的,只是为了说明问题,具体应该参考同目录下的default来配置。

    3.3、侦听90端口

    编辑配置文件/etc/apache2/ports,添加如下内容:

    NameVirtualHost *:90
    Listen 90
    

    3.4、重启apache,访问mysites指定的目录

    #/etc/init.d/apache2 restart
    

    之后,在浏览起敲入"http://192.168.2.2:90" 这样就访问了/home/quietheart/testnet/www下面的内容。

    描述

    参考后面参考资料,这里主要是关于配置文件例如/etc/apache/sites-available/default等中的内容字段的解释。

    这个文件指定了web目录,其中每个字段的解释如下。

    ServerAdmin

    服务器返回给客户端的错误信息中所包含的管理员邮件地址。
    说明:
    

    该参数是在所有返回给客户端的错误信息中给出管理员的邮件地址。但也可以是一个 URL地址,如果 httpd不能将该参数的值识别为 URL,它就会假定它是一个 email-address ,并在超连接中用在 mailto后面。这里推荐配置一个 Email地址 ,如果配置的是 URL一定要保证指向一个受控制的服务器,否则用户将无法确保和管理员取得联系。

    示例:

    ServerAdmin hradmin.zh@ccb.cn
    

    DocumentRoot

    组成网络上可见的主文档树的根目录。
    【说明】
    此参数设置了 httpd 服务的目录。在没有配置类似 Alias 这种参数的情况下,服务器会将请求中的 URL附加到 DocumentRoot后面以构成指向文档的路径。
    

    示例:

    DocumentRoot /etc/httpd/www/web
    

    这样,对 http://www.ccb.com.cn/index.html的访问就会指向 /etc/httpd/www/web/index.html。如果参数中不是绝对路径,则被假定为是相对于 ServerRoot 的路径。

    注意:指定 DocumentRoot时不应包括最后的 "/"。 经过实践,如果指定多个DocumentRoot,后面的DocumentRoot指定会覆盖前面的。

    Directory

    可以封装一组参数,使之仅对文件空间中的某个目录及其子目录生效

    【语法】
    <Directory directory-path> ... </Directory>
    
    【说明】
    <Directory>和 </Directory>用于封装一组参数,使其对某个目录及其子目录生效。 directory-path可以是一个目录的完整路径,或是包含了 Unix shell匹配语法的通配符字符串,但是通配符都不能匹配 "/"字符,例如: 是无法匹配 /home/user/public_html 的,而 却能够正确匹配。
    

    directory-path参数必须与被访问文件所在文件系统的路径保持一致。如果有多个非正则表达式, 配置段符合并包含某文档的目录 (或其父目录 ),那么会以短目录优先的规则进行应用。 的默认访问权限为 "Allow from All",这意味着 Apache没有进行访问控制,通过设置 Order, Deny, Allow, AllowOverride这个几个参数可以对访问进行控制。

    下面简单介绍一下这 4个参数的用法。

    1、Allow

    该参数是控制哪些主机才可以访问目标。

    示例:

    Allow from 192.64.182.53
    Allow from 192.64.182.1 192.64.182.3
    

    表示 IP地址为 192.64.182.1或 192.64.182.3或 192.64.182.53才可以访问目标。

    2、Deny

    该参数是控制哪些主机被禁止访问目标。

    示例:

    Deny from 192.64.182.53
    Deny from 192.64.182.1 192.64.182.3
    

    表示 IP地址为 192.64.182.1或 192.64.182.3或 192.64.182.53则不能访问目标。

    3、Order

    Order参数是控制 Allow 和 Deny 参数生效顺序的,常用的取值是: Deny,Allow 和 Allow,Deny。

    例如:

    Order Deny,Allow
    Deny from 192.64.182.53
    Allow from 192.64.182.1 192.64.182.3
    

    表示先考虑 Deny条件再考虑 Allow条件,该配置的意思是拒绝 IP地址为 192.64.182.53的访问,只允许 192.64.182.1 和 192.64.182.3的访问。

    再看一个例子:

    Order Allow,Deny
    Allow from all
    Deny from 192.64.182.53
    

    表示只拒绝 IP地址为 192.64.182.53的访问。

    4、AllowOverride

    当服务器发现一个 .htaccess文件 (由 AccessFileName 指定 )时,它需要知道在这个文件中声明的哪些指令能覆盖在此之前指定的配置参数。

    一般情况下 NONE即可,如下:

    AllowOverride None
    

    Directory 参数小结

    最后给出一个完整封装目录的配置段:

    Options Indexes FollowSymLinks       //对 URL映射到的系统目录产生文件列表
    AllowOverride None
    Order Deny,Allow
    Allow from all
    

    上面的配置对系统中的 "/home/hrdc/images"目录进行了封装,而且对访问不加任何限制。这段配置后面在讲如何将静态文件放置到 Apache上还会用到。

    VirtualHost

    【关键参数说明】
    VirtualHost 
    虚拟主机。
    【说明】
    在这个参数内可以模仿一个 Web服务配置众多参数,即在 <VirtualHost>和 </VirtualHost>中配置一组仅作用于特定虚拟主机的参数。
    

    示例

    ServerAdmin   hrdc.zh@ccb.cn
    DocumentRoot  /home/hrdc
    ServerName    hrdc.ccb.cn
    ErrorLog logs/host.foo.com-error_log
    TransferLog logs/host.foo.com-access_log
    

    注意:每个虚拟主机必须对应不同的 IP地址、端口或是不同的主机名。

    <VirtualHost> 中定义的监听地址只代表虚拟主机并不是指定 Apache服务的监听地址。指定 Apache监听地址的参数则是 Listen 。

    IfModule

    根据指定的模块是否启用为条件来决定是否进行处理。

    【语法】
    <IfModule [!]module-file |module-identifier > ... </IfModule>
    【说明】
    在该参数中配置的表达式为真的时候才进行处理。如果为假,所有其包含的参数都将被忽略。
    

    <IfModule> 段中的表达式可以为以下两种方式之一来表达:

    1. module
    2. !module

    第一种情况表示,在 和 之间的配置参数仅当 module被载入后才被执行。此模块可以是编译时静态链接的核心模块或是使用 LoadModule 指令动态载入的模块。第二种情况则表示,仅当 module没有载入时才执行参数内的配置处理。

    module可以是模块的标识符或者是编译模块时的文件名。在上面的例子中, mod_weblogic.c就是编译模块时的文件名。

    注意: 配置段是可以嵌套的,从而可以实现简单的多模块测试。

    其他

    剩余问题

    • 如何限制ip访问?

    这个还有待研究,可以需要用directory字段来指定参数了。

    这样,就可以指定让谁访问你的web空间,不让谁访问你的web空间了。

    参考

    相关文章

      网友评论

        本文标题:Linux实用工具-apache

        本文链接:https://www.haomeiwen.com/subject/fkzzpktx.html