httpd的主要相关文件
主配置文件:/etc/httpd/httpd.conf
默认网页根目录:/var/www/html
默认网页文件名:index.html
访问日志 :/var/log/httpd/access_log
错误日志:/var/log/httpd/error_log
与用户个人主页相关的文件:/etc/httpd/conf.d/userdir.conf
httpd的常用全局配置参数
ServerRoot xxxx :设置配置文件,错误文件,日志文件的存放目录
Timeout xxx :设置客户多久时间没有连接到服务器就断开
MaxClilent xx:改项在prefork.c模块里面,然后设置同一时间段内能够
访问的最大用户数量
Listen 80:监听端口号
Listen IP地址:监听地址
ServerAdmin 管理员邮箱: 设置网站的管理员邮箱
ServerName www.baidu.com:80 :设置域名
Document "/usr/local/html 主服务器网页内容一般都存储在这个文档目录当中"
DirectoryIndex index.html :设置默认的网页的文件名
AddDefaultCharset GB2312 :设置默认的字符编码
User xx:服务工作时使用的用户
Group xx :服务工作时使用的组
Directory : 网站数据目录的权限
ErrorLog 文件路径 :错误日志文件
CustomLog 文件路径 :访问日志文件
用户个人主页设置
1、编辑/etc/httpd/conf.d/userdir.conf文件,将UserDir disable 注释掉,然后将UserDir public取消注释,其中public_html文件就是个人用户的网页文件。在红框下面的Directory容器是对个人主页文件的相关访问权限进行限制。
2、我们需要在想要进行个人主页设置的用户的家目录下添加public_html文件,并可以在该文件的内部添加任意的内容。而且因为是要将网站的内容显示给别人看,所以我们还要让该用户的家目录具备有让别人看的权限,比如755权限
3、当上面的操作做完后,在网页上输入http://本机IP地址/~用户名 就可以看到public_html文件中的内容。
虚拟目录的配置
虚拟目录就是掩盖主机上的真实物理路径,当我们在访问网站的时候指明我们想要访问的虚拟目录,但是实质上我们访问的还是虚拟目录对应的物理目录。同时也只有知道虚拟目录名字的人才能去访问虚拟目录。
配置流程
1、在配置文件中指定虚拟目录和真实目录的对应关系
Alias /test "/kk" :这样就指定了根目录下的kk目录是test虚拟目录对应的物理目录
2、在配置文件中配置虚拟目录的访问权限
下面的Directory容器就是设置虚拟目录相关访问权限的语句。
(1)allow from [IP地址|域名|网段] :允许哪些主机访问
(2)deny from [IP地址|域名|网段] :禁止哪些主机访问
(3)Order allow,deny :表示先进行允许再进行禁止,结合allow from和deny from语句可以进一步对访问进行限制。例子:
Order allow,deny
allow from 192.168.0.0/24
deny from 192.168.0.101
Order deny,allow
allow from 192.168.0.0/24
deny from 192.168.0.101
如果Order为allow先,deny后,那么当一个主机匹配了allow和deny两个的时候,它匹配的语句是deny。
如果Order为allow后,deny先,那么当一个主机匹配了allow和deny两个的时候,它匹配的语句是allow。
所以第一个例子表示允许192.168.0.0/24网段,但是拒绝192.168.0.101
第二个例子表示允许192.168.0.0/24网段
(4)Require all granted :也是一种权限设置的工具,和allow from和deny from差不多,是2.4版本必须加入的权限限制语句,如果只有allow from或者deny from那么最后服务器死活都不会让你访问的.
Require all granted :表示允许所有主机访问
Require all denied :表示拒绝所有主机访问
Require local :表示仅允许本地主机访问
Require [not] host <主机名或域名列表> :表示允许或拒绝指定主机或域访问
Require [not] IP <IP地址或网段列表> :表示允许或拒绝制定IP或网段访问
虚拟主机
(1)基于IP的虚拟主机
上面两个例子就是基于IP的虚拟主机,当然我们还能在上面的结构的基础上增添其他的选项.基于IP的虚拟主机总的来说就是定义virtualhost的时候,将其结构中定义IP的地方取不同的IP,然后主数据目录,域名也做了改变.
(2)基于域名的虚拟主机
基于域名的虚拟主机就是在定义虚拟主机的时候IP使用一样的,但是定义ServerName(域名)的时候使用不同的域名.但是如果要基于这种形式我们必须保证客户机在解析这些域名的时候能够解析到同一个IP上.可以在客户机上修改/etc/hosts文件中的内容.
(3)基于端口的虚拟主机
基于端口的虚拟主机就是在定义虚拟主机的时候,使用相同的IP,但是使用不同的端口.
如果要使用基于端口的虚拟主机要增添Listen语句取监听对应的端口,否则不能正常使用.
定义需要用户验证的网站
第一步:输入htpasswd -c /etc/httpd/passwd 用户名
这一步表示创建一个存储对应用户信息的文件,该命令输入后会让你输入密码,相关的用户名和密码都会保存在该命令指定的文件中.
第二步:在对应网站的目录的Directory容器写入上面的结构
AllowOverride all:表示开启授权
authuserfile:定义了用户文件的位置,我们要将第一步中命令定义的用户信息文件的路径放在这里
authname:授权的提示信息
authtype :授权类型
require user fuck :表示如果想要登录需要一个名为fuck的用户
第三步:重启服务