阿岳之_httpd2.2网页认证和虚拟主机配置篇(一)
2016-01-11 20:36
543 查看
Backgroud:
centos6.7
执行操作:yum install -y httpd
Working mode
httpd的三种工作模式:
prefork
worker
event
Configuration
配置文件:/etc/httpd/confi/httpd.conf,/etc/httpd/conf.d/*.conf
说明: 其中centos7.1默认的yum安装的httpd是2.4版本的,yum安装的httpd2.4的模块路径是/etc/httpd/modules_conf,然而模块却依然放在/usr/lib64/httpd/mod_*,不同的是,centos7(httpd2.4.6)里面有100个模块,而centos6(httpd2.2.15)里面有65个,由此可见,httpd2.4较httpd2.2扩展或者集成了更多的功能
Authentication
账号认证有两种:基于http协议认证和基于表单认证
基于http协议认证又有两种方式:Basic和digest,此处介绍基于Basic认证方式
安全域、存放账户和密码的文件、存放组的文件
安全域:即为认证作用的范围
存放账户和密码的文件:不要放在安全域的范围内,因为这是不可行的
存放组的文件:
实现
第一步,以账户进行认证:
mkdir /var/www/html/admin
vi /etc/httpd/conf/httpd.conf
#添加一段
<Directory "/var/www/html/admin">
Options None
AllowOverride None
AuthType Basic
AuthName "Sorry ,this is a private page.Please use your accunt"
AuthUserFile "/tmp/.htpasswd" //最好为隐藏文件
Require
user yuelin
# Require valid-user //此处意义为允许所有用户访问,不过这里表示仅允许yuelin这个账户访问
</Directory>
#添加存放账户和密码的文件
htpasswd -c -m /tmp/.htpasswd yuelin //若/tmp下面没有.htpasswd 则需要 -c 创建,但是第二次添加账户千万别-c,因为如果存在这个文件,会默认清空覆盖原有文件
htpasswd -m /tmp/.htpasswd mama
完事后这样:
~ ]# cat /tmp/.htpasswd
yuelin:$apr1$53EoMn8y$aLJ7A0uA3MtVvzOOtiCcn.
Even:$apr1$YRj84iRO$WFbaCIoqDmyfy9098h4np.
Mike:$apr1$2zg5g5Vz$MRLDM7PGzz7.tl6zn.ztL/
mama:$apr1$SsLuWLLK$Os2r76UUbiQXKrzB7v36F.
boom:$apr1$HWkSHHoN$JM2ityCRIDe2LWIfGWLGL/
#接着记得语法检查
httpd -t
#重载服务
service httpd reload
# 输入http://x.x.x.x/admin进行访问
第二步,以组进行认证:
vi /etc/httpd/conf/httpd.conf
#添加一段
<Directory "/var/www/html/admin">
Options None
AllowOverride None
AuthType Basic
AuthName "Sorry ,this is a private page.Please use your accunt"
AuthUserFile "/tmp/.htpasswd"
AuthGroupFile "/tmp/.htgroup"
Require group group1
</Directory>
#组配置文件如下
vi /tmp/.htgroup
#组配置文件内容
~] # cat /tmp/.htgroup
group1:bird mama boom
#也是检查语法,重载服务,用浏览器登录认证,ok啦!
VirtualHosts
虚拟机主机三个主要配置方法:基于ip,基于端口,基于FQDN(域名)
第一步:注释掉服务器main主机的根目录:
#DocumentRoot /var/www/html
第二步:创建虚拟主机对应的根目录文件
mkdir -pv /var/www/{x.com,y.net,z.org}/htdocs
方法一:基于ip创建
ifconfig eth0:0 172.16.52.70
ifconfig eth0:1 172.16.52.71
ifconfig eth0:2 172.16.52.72
vi /etc/httpd/conf.d/virtualhost1.conf,并键入内容:
<VirtualHost 172.16.52.70:80>
ServerName www.x.com
DocumentRoot "/var/www/x.com/htdocs"
</VirtualHost>
<VirtualHost 172.16.52.71:80>
ServerName www.y.net
DocumentRoot "/var/www/y.net/htdocs"
</VirtualHost>
<VirtualHost 172.16.52.72:80>
ServerName www.z.org
DocumentRoot "/var/www/z.org/htdocs"
</VirtualHost>
方法二:基于端口创建
vi /etc/httpd/conf.d/virtualhost2.conf,并键入内容:
Listen 808
<VirtualHost 172.16.52.68:80>
ServerName www.x.com
DocumentRoot "/var/www/x.com/htdocs"
</VirtualHost>
<VirtualHost 172.16.52.68:808>
ServerName www.y.net
DocumentRoot "/var/www/y.net/htdocs"
</VirtualHost>
方法三:基于FQDN创建:
vi /etc/httpd/conf.d/virtualhost3.conf,并键入内容:
NameVirtualHost 172.16.52.68:80 //httpd2.2是需要添加这个命令的,httpd2.4是不需要的
<VirtualHost 172.16.52.68:80>
ServerName www.x.com
DocumentRoot "/var/www/x.com/htdocs"
</VirtualHost>
<VirtualHost 172.16.52.68:80>
ServerName www.y.net
DocumentRoot "/var/www/y.net/htdocs"
</VirtualHost>
注意:基于FQDN的解析需要在客户端上的hosts文件里添加主机解析,eg;
windows下:C:\Windows\System32\drivers\etc\hosts
127.0.0.1 mpa.one.microsoft.com
127.0.0.1 sls.microsoft.com
172.16.52.68 www.x.com
172.16.52.68 www.y.net
linux下: vi /etc/hosts
172.16.52.68 www.x.com x.com
172.16.52.68 www.y.net y.net //后面y.net是命名别名,起始同一个ip地址后面的域名可以写在同一行,例如 172.168.52.68 www.x.com www.y.net
centos6.7
执行操作:yum install -y httpd
Working mode
httpd的三种工作模式:
prefork
worker
event
Configuration
配置文件:/etc/httpd/confi/httpd.conf,/etc/httpd/conf.d/*.conf
说明: 其中centos7.1默认的yum安装的httpd是2.4版本的,yum安装的httpd2.4的模块路径是/etc/httpd/modules_conf,然而模块却依然放在/usr/lib64/httpd/mod_*,不同的是,centos7(httpd2.4.6)里面有100个模块,而centos6(httpd2.2.15)里面有65个,由此可见,httpd2.4较httpd2.2扩展或者集成了更多的功能
Authentication
账号认证有两种:基于http协议认证和基于表单认证
基于http协议认证又有两种方式:Basic和digest,此处介绍基于Basic认证方式
安全域、存放账户和密码的文件、存放组的文件
安全域:即为认证作用的范围
存放账户和密码的文件:不要放在安全域的范围内,因为这是不可行的
存放组的文件:
实现
第一步,以账户进行认证:
mkdir /var/www/html/admin
vi /etc/httpd/conf/httpd.conf
#添加一段
<Directory "/var/www/html/admin">
Options None
AllowOverride None
AuthType Basic
AuthName "Sorry ,this is a private page.Please use your accunt"
AuthUserFile "/tmp/.htpasswd" //最好为隐藏文件
Require
user yuelin
# Require valid-user //此处意义为允许所有用户访问,不过这里表示仅允许yuelin这个账户访问
</Directory>
#添加存放账户和密码的文件
htpasswd -c -m /tmp/.htpasswd yuelin //若/tmp下面没有.htpasswd 则需要 -c 创建,但是第二次添加账户千万别-c,因为如果存在这个文件,会默认清空覆盖原有文件
htpasswd -m /tmp/.htpasswd mama
完事后这样:
~ ]# cat /tmp/.htpasswd
yuelin:$apr1$53EoMn8y$aLJ7A0uA3MtVvzOOtiCcn.
Even:$apr1$YRj84iRO$WFbaCIoqDmyfy9098h4np.
Mike:$apr1$2zg5g5Vz$MRLDM7PGzz7.tl6zn.ztL/
mama:$apr1$SsLuWLLK$Os2r76UUbiQXKrzB7v36F.
boom:$apr1$HWkSHHoN$JM2ityCRIDe2LWIfGWLGL/
#接着记得语法检查
httpd -t
#重载服务
service httpd reload
# 输入http://x.x.x.x/admin进行访问
第二步,以组进行认证:
vi /etc/httpd/conf/httpd.conf
#添加一段
<Directory "/var/www/html/admin">
Options None
AllowOverride None
AuthType Basic
AuthName "Sorry ,this is a private page.Please use your accunt"
AuthUserFile "/tmp/.htpasswd"
AuthGroupFile "/tmp/.htgroup"
Require group group1
</Directory>
#组配置文件如下
vi /tmp/.htgroup
#组配置文件内容
~] # cat /tmp/.htgroup
group1:bird mama boom
#也是检查语法,重载服务,用浏览器登录认证,ok啦!
VirtualHosts
虚拟机主机三个主要配置方法:基于ip,基于端口,基于FQDN(域名)
第一步:注释掉服务器main主机的根目录:
#DocumentRoot /var/www/html
第二步:创建虚拟主机对应的根目录文件
mkdir -pv /var/www/{x.com,y.net,z.org}/htdocs
方法一:基于ip创建
ifconfig eth0:0 172.16.52.70
ifconfig eth0:1 172.16.52.71
ifconfig eth0:2 172.16.52.72
vi /etc/httpd/conf.d/virtualhost1.conf,并键入内容:
<VirtualHost 172.16.52.70:80>
ServerName www.x.com
DocumentRoot "/var/www/x.com/htdocs"
</VirtualHost>
<VirtualHost 172.16.52.71:80>
ServerName www.y.net
DocumentRoot "/var/www/y.net/htdocs"
</VirtualHost>
<VirtualHost 172.16.52.72:80>
ServerName www.z.org
DocumentRoot "/var/www/z.org/htdocs"
</VirtualHost>
方法二:基于端口创建
vi /etc/httpd/conf.d/virtualhost2.conf,并键入内容:
Listen 808
<VirtualHost 172.16.52.68:80>
ServerName www.x.com
DocumentRoot "/var/www/x.com/htdocs"
</VirtualHost>
<VirtualHost 172.16.52.68:808>
ServerName www.y.net
DocumentRoot "/var/www/y.net/htdocs"
</VirtualHost>
方法三:基于FQDN创建:
vi /etc/httpd/conf.d/virtualhost3.conf,并键入内容:
NameVirtualHost 172.16.52.68:80 //httpd2.2是需要添加这个命令的,httpd2.4是不需要的
<VirtualHost 172.16.52.68:80>
ServerName www.x.com
DocumentRoot "/var/www/x.com/htdocs"
</VirtualHost>
<VirtualHost 172.16.52.68:80>
ServerName www.y.net
DocumentRoot "/var/www/y.net/htdocs"
</VirtualHost>
注意:基于FQDN的解析需要在客户端上的hosts文件里添加主机解析,eg;
windows下:C:\Windows\System32\drivers\etc\hosts
127.0.0.1 mpa.one.microsoft.com
127.0.0.1 sls.microsoft.com
172.16.52.68 www.x.com
172.16.52.68 www.y.net
linux下: vi /etc/hosts
172.16.52.68 www.x.com x.com
172.16.52.68 www.y.net y.net //后面y.net是命名别名,起始同一个ip地址后面的域名可以写在同一行,例如 172.168.52.68 www.x.com www.y.net
相关文章推荐
- 启动一个支持文件上传的HTTP-Server
- HDU 4265 Science! 网络流解多重匹配,输出所有比配可能
- http协议
- Android:Https跳过证书验证、Https使用证书、HttpClient、
- 虚拟机VMware3种网络模式(桥接、nat、Host-only)的工作原理
- 使用套接字Socked实现网络通讯(网络编程)
- 【解决方案】Http请求报错
- 从僵尸网络追踪到入侵检测 第6章 Honeyd日志使用
- 关于http接口防止非法调用的设计方案
- 网络通信的工作原理
- 反向传播神经网络 BPNN
- OpenCV中使用神经网络 CvANN_MLP
- BZOJ 1189: [HNOI2007]紧急疏散evacuate|网络流|二分答案
- 使用okhttp异步下载图片,保存到本地,并在系统相册中显示
- iOS开发网络篇之文件下载、大文件下载、断点下载
- 从僵尸网络追踪到入侵检测 第5章 使用Honeyd创建防御路由模板
- avaweb学习总结(八)——HttpServletResponse对象(二)
- ios 中使用https的知识
- [转载]Fiddler监控任意APK的HTTPS请求
- C++ 用libcurl库进行http通讯网络编程