【IT168 服务器学院】如同其他所有的网络服务一样,Apache 同样使用各种安全性控制,例如存取地址控制和身份控制。这里我们先讲地址和目录控制。
Apache 将目录作为单元来进行存取控制,每个目录在/etc/httpd/conf/httpd.conf 中
使用一个段落,首先的是/目录,这实际是设置缺省值:
Options FollowSymLinks
AllowOverride None
每个段落都是由这样的两组尖括号构成的行夹起来的,其中最主要的句子是Options,AllowOverride,Allow/Deny,Order 等。
Options这个子句用来说明一些主要的设置,目前可以使用的设置有Indexes,Includes,FollowSymLinks,ExecCGI,MultiView,当然还有两个最简单的选择就是None和All。
None是禁止所有选择,而All 允许上面的所有Options。一般我们主要关心的是Indexes 和FollowSymLinks。Indexes 是设定是否允许在目录下面没有index.html 的时候显示目录,而FollowSymLinks 决定是否可以通过符号连接跨越DocumentRoot。例如,尽管/ftp 不在/home/httpd/html 下面,但是我们仍然可以使用符号连接建立一个/home/httpd/html/ftp使得可以直接输入http://mydomain.com/ftp 来访问这个目录。
使用FollowSymLinks 的办法很简单,就是首先在合适的目录段落里面Options Follow SymLinks,(符号连接的上层就可以)然后建立一个别名:
Alias /ftp/ “home/httpd/html/ftp/”
后面的是你建立的到/ftp 的符号连接。注意这一行应该位于所有目录段落之外。
AllowOverride
AllowOverride 定义是否允许各个目录用目录中的.htaccess(后面解释)覆盖这里设定的Options。它的选择有Options,FileInfo,AuthConfig,Limit 或者它们的组合,当然还有None 和All。
由于/是缺省设置,所以这里没有设置太多的内容,相反,我们应该在/之后独立设置各个目录的控制,例如:
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
出现了两个新的选项:Order 和Allow。
Order
它有两种用法,即Order allow,deny 或者Order deny,allow。简单地说,它用来设置是先执行deny 还是先执行allow,例如,Order deny,allow 意味着先看deny 行,再看allow 行,这样如果deny from all 再allow from 202.112.58.0/24 后来的allow子句就会超越deny 而对202.112.58.x 打开访问。
Allow/Deny from
这两个选项和Order 一起使用,Allow 允许某个地址来的连接请求,Deny 则禁止这个请求,例如在Order deny,allow 的情况下,Deny from all,Allow from 192.168.12.0/24 表示只有192.168.12.x 的用户可以访问这个目录。
现在我们来看看下面的一个设定:
UserDir public_html
AllowOverride FileInfo AuthConfig Limit
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
Order allow,deny
Allow from all
Order deny,allow
Deny from all
这个有什么用处?UserDir 是一个特殊的选项,用来在用户的宿主目录下设置主页,比如,有一个名字叫wanghy 的用户,其宿主目录是/home/wanghy,而且UserDir 象我们刚才那样设定,那么,你可以在浏览器中输入http://www.mydomain.com/~wanghy,它将对应的是宿主目录+UserDir,也就是/home/wanghy/public_html。当然,为了使这个功能生效,你得将这个目录设置为大家都可以读。(现在知道http://xxx.net/~yourname 是怎么回事了吧,P)
下面的行就是对这个功能的限制,注意要使得某人的这个功能生效,必须有这个段落,这个段落里别的东西都是熟知的,唯一新的东西是Limit 段,它用来提供存取限制,例如对应的段落设置GET 和POST 权限,诸如此类。上面的段落表示所有人都可以通过www 进行GET 和POST,而任何人都不能PUT 和DELETE、MOVE 等等。
Limit
对某个路径进行存取限制。
现在我们来看看下面的一个设定:
UserDir public_html
AllowOverride FileInfo AuthConfig Limit
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
Order allow,deny
Allow from all
Order deny,allow
Deny from all
这个有什么用处?UserDir 是一个特殊的选项,用来在用户的宿主目录下设置主页,比如,有一个名字叫wanghy 的用户,其宿主目录是/home/wanghy,而且UserDir 象我们刚才那样设定,那么,你可以在浏览器中输入http://www.mydomain.com/~wanghy,它将对应的是宿主目录+UserDir,也就是/home/wanghy/public_html。当然,为了使这个功能生效,你得将这个目录设置为大家都可以读。(现在知道http://xxx.net/~yourname 是怎么回事了吧,P)
下面的行就是对这个功能的限制,注意要使得某人的这个功能生效,必须有这个段落,这个段落里别的东西都是熟知的,唯一新的东西是Limit 段,它用来提供存取限制,例如对应的段落设置GET 和POST 权限,诸如此类。上面的段落表示所有人都可以通过www 进行GET 和POST,而任何人都不能PUT 和DELETE、MOVE 等等。
Limit
对某个路径进行存取限制。
实际配置如下:
mkdir /home/rd2/leon
chmod 755 /home/rd2
chmod 755 /home/rd2/leon
cp index.html /home/rd2/leon
然后就可以在浏览器中输入http://10.12.2.82/~rd2,它将对应的是/宿主目录/UserDir(我们设置位leon),也就是显示/home/wanghy/leon下的index.html。
<IfModule mod_userdir.c>
#
# UserDir is disabled by default since it can confirm the presence
# of a username on the system (depending on home directory
# permissions).
#
#UserDir disable 注释掉
#
# To enable requests to /~user/ to serve the user's public_html
# directory, remove the "UserDir disable" line above, and uncomment
# the following line instead:
#
UserDir leon 改为自己喜欢的
# UserDir public_html 注视掉原句
</IfModule>
#
# Control access to UserDir directories. The following is an example
# for a site where these directories are restricted to read-only.
#
<Directory /home/*/leon> 改为自己喜欢的
AllowOverride FileInfo AuthConfig Limit
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
<Limit GET POST OPTIONS>
Order allow,deny
Allow from all
</Limit>
<LimitExcept GET POST OPTIONS>
Order deny,allow
Deny from all
</LimitExcept>
</Directory>
FollowSymLinks决定是否可以通过符号连接跨越DocumentRoot。例如,尽管/home不在/var/www/html下面,但是我们仍然可以使用符号连接也就是说可以直接输入http://mydomain.com/myhome来访问这个目录。
使用FollowSymLinks的办法很简单,就是目录段落里面Options Follow SymLinks,然后建立一个别名:
Alias /myhome “/home”
Alias /myhome "/home"(不能是/myhome/)
<Directory "/home">
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
虚拟主机:
NameVirtualHost 10.12.2.82
<VirtualHost 10.12.2.84> 需要复制一个eth0:0 #访问时候用:10.12.2.84,不可用leon1.abit.cn???????
DocumentRoot /home/leon
ServerName leon1.abit.cn
</VirtualHost>
<VirtualHost 10.12.2.82>访问时候用:leon(leon1).abit.cn
DocumentRoot /var/www/html
ServerName leon.abit.cn
</VirtualHost>
<VirtualHost 10.12.2.82>
DocumentRoot /home
ServerName leon2.abit.cn
</VirtualHost>
相关推荐
在这篇文章中,我们将深入探讨 Apache 配置文件的各个方面,帮助读者更好地理解和掌握 Apache 配置文件的使用。 Apache 配置文件的结构 Apache 配置文件主要由三个部分组成:全局环境、主服务器参数和虚拟主机...
本篇文章将详细讲解如何在CentOS操作系统上通过源码安装Apache并配置HTTPS。 首先,我们需要了解Apache HTTP Server的基本安装步骤。Apache的安装通常包括以下几个关键依赖库:apr(Apache Portable Runtime)、apr...
《Bugzilla 3.4.6配置手册:Apache配置详解》 在IT行业,Bug跟踪系统是软件开发过程中不可或缺的一部分,它帮助团队有效地管理和追踪软件缺陷。其中,Bugzilla作为一款开源的Bug跟踪系统,备受开发者青睐。本文将...
- 注意在Apache配置文件中将`\`替换为`/`。 - **DirectoryIndex**: - 目录索引,在仅指定目录的情况下,定义默认显示的文件名。 - 可以设置多个文件名,系统会按照从左到右的顺序依次尝试加载。 - 示例配置: ``...
在本篇文章中,我们将探讨如何通过配置Apache以在不同的端口上访问不同的站点。 首先,我们需要了解Apache的虚拟主机概念。虚拟主机允许在同一个服务器上运行多个独立的网站,每个网站可以有不同的域名、目录和配置...
Linux Apache配置是一个重要的主题,尤其对于那些希望搭建稳定、高效的Web服务器的人来说。Apache是世界上最流行的Web服务器软件,而Linux作为开源操作系统,与Apache的结合提供了强大的服务器基础。在这篇文章中,...
通常,这样的文章会涵盖如何下载Apache和PHP,如何安装和配置它们,以及解决常见问题的技巧。 标签“源码”和“工具”暗示了配置过程中可能涉及查看和修改配置文件的源代码,以及使用各种软件工具,如集成开发环境...
1. **Apache配置**:确保Apache已安装,然后编辑配置文件,开启PHP支持。找到`LoadModule php_module modules/libphp.so`(Windows下可能是php7_module),取消注释或添加此行。接着,你需要在`<Directory>`或`...
在本篇文章中,我们将详细介绍 PHP5.3.1、Apache 和 MySQL 的配置过程。整个配置过程可以分为三部分:安装 Apache、安装 PHP 和安装 MySQL。 安装 Apache 在安装 Apache 之前,我们需要下载 Windows 平台的 Apache...
介绍Apache的配置与管理文档,适合网络编程配置的初学者入门,讲解得很详细,各个参数、文件的意义。并有CGI的相关介绍。(文章带目录)
在本篇文章中,我们将详细介绍如何安装和配置 Apache Tomcat,以便轻松地搭建开发环境。整个过程可以分为四步,非常简单易懂。 第一步:下载并解压缩 Apache Tomcat 首先,我们需要下载 Apache Tomcat 的压缩包,...
4. **设置虚拟主机**:在Apache配置文件中创建一个新的虚拟主机,指定.NET应用的根目录: ``` *:80> ServerName yourdomain.com DocumentRoot "C:/path/to/your/net/application" AllowOverride All ...
总之,Apache配置涵盖了服务器基础设置、虚拟主机、安全策略、性能优化、模块应用和日志管理等多个方面。通过本教程的配套实验,你将能够熟练地配置和管理Apache Web服务器,为你的网站提供稳定、高效的服务。参考...
Linux 下 Apache+PHP+Mysql 安装与配置 ...总结,文章介绍了 Linux 下 Apache+PHP+Mysql 的安装和配置过程,包括 Apache 的安装和配置、MySQL 的安装和配置,并且对安装过程中的注意事项进行了说明。
本篇文章将详细介绍如何在本地计算机上配置Apache HTTP服务器以及PHP运行环境,以便能够高效地进行Web应用程序的开发与调试。 #### 二、Apache与PHP简介 - **Apache HTTP Server**:Apache是一款开源的Web服务器...
本篇文章详细介绍了在 Linux 操作系统下安装和配置 Apache2.2.x、MySql5.x 和 PHP5.x 的步骤,使用的操作系统为 Redhat AS5,内核版本为 Linux 2.6.18-8.el5,但其他 Linux 版本也可以参考。 知识点一:下载所需...
4. **配置代理规则**:在Apache配置文件中,创建一个VirtualHost,设置反向代理到Tomcat。例如: ``` *:80> ServerName your.domain.com ProxyPass / ajp://localhost:8009/ ProxyPassReverse / ...
在本篇文章中,我们将深入探讨Apache服务器的配置过程,帮助你掌握如何有效地管理和定制你的Web服务环境。 首先,让我们从基础开始。Apache服务器配置主要通过修改其主配置文件`httpd.conf`进行。这个文件通常位于...
本篇文章将详细讲解在Apache服务器中配置FastCGI,特别是如何编辑`httpd.conf`文件来实现这一功能。 首先,我们需要了解Apache的`httpd.conf`配置文件。这是Apache的主要配置文件,包含了服务器启动、运行以及与...