httpd(一)--基础、认证
www服务概述与工作原理
www(world wide web)服务是网络中使用最多的服务之一,对网上内容的查找与浏览均需要该服务的支持,它使得用户可以通过交互式的图形界面获取信息和其他服务。www服务是基于web技术来实现浏览器/服务器模式的应用,由web服务器提供服务,用户通过客户机上的通用浏览器来发送和接受html(超文本标记语言)格式的文件,用户通常把web服务当做是www服务的具体实现。
Web系统是客户端/服务器式的,由服务端程序和客户端程序两部分组成。客户端程序常用的比如IE等。用户在浏览器的地址栏输入同意资源定位地址(URL)来访问web页面。客户端与服务器的通信过程如图:
Httpd的安装和启动
1.Httpd安装,首先配置好yum源
#yum install httpd
2.Httpd的启动与测试
httpd服务器安装完毕后,会自动生成一系列目录和文件,包括一个默认的站点。Httpd的主目录
是/var/www/,在该目录下还有一系列子目录,如下所示:
/var/www/html:默认的网站页面存放目录。保存向外发布的web内容和文件等。 /var/www/cgi-bin:存放可执行程序,包括CGI脚本、PERL脚本等。 /var/www/manual:保存html版的帮助手册。 /var/www/error:存放错误提示文件。 /var/www/icons:存放服务器的图标文件。 /var/www/mrtg:流量监控器文件存放目录
httpd服务器启动等相关命令是:
#service httpd start|stop|restart|status|reload //运行|关闭|重启服务|查看当前状态|重新载入
3.简单页面实现
编辑配置文件,把光标移到最后,修改配置文件
#vim /etc/httpd/conf/httpd.conf
先简单的定义一个页面的路径,域名指向www.ky.com,这里我的DNS已经配置好了,所以,在本机只需要把DNS指向DNS服务器就可以了,如果没有做DNS,那么把上面的“*”改成自己服务器的ip,访问的时候必须是ip访问。下面去创建一个简单的页面,来验证一下,如下:
编辑配置文件
#vim /var/www/html/index.html
创建好主页之后去本机测试一下
这样简单的网页就生成了
默认配置文件及注释
ServerRoot “/etc/httpd” //指定服务器保存其配置、出错和日志文件等的根目录PidFile run/httpd.pid //指定记录服务器启动进程号的文件。此文件在服务进程启动后将被建立,服务进程关闭后此文件消失Timeout 60 //服务器在断定请求失败前等待的秒数,即若60s后没有收到或送出任何数据,服务器就自动断开这个链接 KeepAlive Off //启用HTTP持久连接,建议将Off修改为On以启用持久连接,避免客户一次连接只能发送一个HTTP请求MaxKeepAliveRequests 100 每个连接允许的最大HTTP请求数量。如果将此值设为0,将不限制请求的数目。建议最好将此值设为一个比较大的值,以确保最优的服务器性能。此项只有KeepAlive On时才有效 KeepAliveTimeout 15 //Apache在关闭持久连接前等待下一个HTTP请求的秒数。即若两个相邻的HTTP请求的时间间隔超过15s,就切断连接。对高负荷服务器来说,KeepAliveTimeout值较大会导致一些性能方面的问题 StartServers 8 //服务器启动时派生出的子进程数目。该值应为于MinSpareServer与MaxSpareServers之间 MinSpareServers 5 //Apache在运行时会根据负载的轻重自动调整空闲子进程的数目,若低于5个空闲子进程,就创建一个新的子进程准备为客户提供服务 MaxSpareServers 20 //若高于20个空闲子进程,就逐一删除子进程来提高系统性能 ServerLimit 256 //服务器允许的进程数上限,最大值是20000 MaxClients 256 //限定最多并发访问的客户数量,默认为256.任何超过MaxClients限制的请求都将进入等候队列,一旦一个连接被释放,队列中的请求将得到服务。如果MaxClients的值超过256,必须将ServerLimit也设为同样的数值 MaxRequestsPerChild 4000 //指定设置每个子进程在其生存期内允许服务的最大请求数量。到达MaxRequestsPerChild为0,子进程将永远不会结束 Listen 80 //指定服务监听端口 Include conf.d/*.conf //将/etc/httpd/conf.d目录下所有以conf结尾的配置文件包含进来 User apache //指定Apache运行时相关进程的属主与属组 Group apache ServerAdmin root@localhost //指定管理员邮箱 #ServerName www.example.com:80 //指定服务器如何识别自身的名字和端口号 UseCanonicalName Off //配置服务器如何确定它自己的域名。当值为Off时,服务器使用客户端提供的主机名和端口号;设置为On时,使用ServerName的值 DocumentRoot “/var/www/html” //设置根目录路径,指定DocumentRoot时不应包括最后的”/” <Directory “/var/www/html”> //封装一组指令,使之仅对某个目录及其子目录生效Options Indexes FollowSymLinks //允许符号链接,访问不在本目录下的文件AllowOverride None //禁止读取.htaccess配置文件的内容Order allow,deny //指定先执行Allow(允许)访问规则,在执行Deny访问规则Allow from all //设置Allow(允许)访问规则,允许所有连接 </Directory> //封装结束 #NameVirtualHost *:80 //监听所有IP地址的80端口,默认以注释,需要用到虚拟主机,此项必须开启 #ServerAdmin webmaster@dummy-host.example.com //网站管理员邮箱 #DocumentRoot /www/docs/dummy-host.example.com //网站存放的位置 #ServerName dummy-host.example.com //服务器名称,域名 #ErrorLog logs/dummy-host.example.com-access_log comman //错误日志路径 #CustomLog logs/dummy-host.example.com-access_log common //访问日志路径
Httpd的基于用户做访问控制
基于文件对用户做访问控制
1.编辑配置文件,在里面添加下列信息,事先要去对应的目录下创建一个admin目录,里面创建一
个首页。
#vim /etc/httpd/conf/httpd.conf
<Directory "/var/www/html/admin">Optinos none 用户访问时都不允许AllowOverride AuthConfig 做认证相关的配置AuthType Basic 认证类型是basicAuthName "Admin Area." 认证名称AuthUserFile /etc/httpd/conf/.htpasswd 认证限制用户存放位置Require valid-user 允许访问的用户 </Directory>
2.创建用户,这里的用户跟系统用户没有关系
htpasswd
-c:如果此文件事件不存在,则创建:注意,只能在创建第一个用户时使用,如果以后想添加用
户的话,绝对不能使用-c,因为这时会把原来htpasswd文件里的用户覆盖掉,相当的危险。
-m:以md5的格式编码存储用户的密码信息
-D:删除指定用户
生成文件并添加用户
#htpasswd -c –m /etc/httpd/conf/.htpasswd ky
查看一下这个文件
因为这个文件里面存放的都是用户和密码,所以创建的时候把这个文件隐藏了,向里面编写用户
不要用vim,只能用上面的命令。编写完之后要#service httpd reload重读配置文件。
这时,我们用客户端来访问以下admin这个文件
这样就完成了基于文件对用户做访问控制了
基于组做访问控制
1.创建两个新用户ky2、ky3
创建一个.htgroup文件,里面存放组信息
只需把这里加一行组,指定刚才创建的组文件名,Require group kytest这个必须要指定组文件中
的组名。
这样就可以实现基于组的认证了。
转载于:https://blog.51cto.com/kyfish/1541332
httpd(一)--基础、认证相关推荐
- httpd mysql认证_Apache Httpd服务器之认证与授权
此篇文章,我们主要探讨下关于Httpd服务器的认证及授权. 所谓认证,在我的理解就是用户通过一个凭证进入服务器的过程,而授权是用户是否有权限获取服务器中的某个资源.认证负责的是整体,授权负责的是局部. ...
- C#进阶系列——WebApi 身份认证解决方案:Basic基础认证
阅读目录 一.为什么需要身份认证 二.Basic基础认证的原理解析 1.常见的认证方式 2.Basic基础认证原理 三.Basic基础认证的代码示例 1.登录过程 2./Home/Index主界面 3 ...
- 基础认证伪造工具phishery
基础认证伪造工具phishery 基础认证(Basic Authentication)被广泛应用内部网站.路由器等Web应用中.用户必须填写对应的用户名.密码才能访问Web资源.Kali Linux新 ...
- HTTP基础认证Basic Authentication
HTTP基础认证Basic Authentication Basic Authentication是一种HTTP访问控制方式,用于限制对网站资源的访问.这种方式不需要Cookie和Session,只需 ...
- c# WebApi之身份验证:Basic基础认证
为什么需要身份认证 身份认证是为了提高接口访问的安全性,如果没有身份验证,那么任何匿名用户只要知道服务器的url,就可以随意访问服务器,从而访问或者操作数据库,这会是很恐怖的事. 什么是Basic基础 ...
- (转)C# WebApi 身份认证解决方案:Basic基础认证
原文地址:http://www.cnblogs.com/landeanfen/p/5287064.html 阅读目录 一.为什么需要身份认证 二.Basic基础认证的原理解析 1.常见的认证方式 2. ...
- 【转】WebApi 身份认证解决方案:Basic基础认证
参考路径:https://www.cnblogs.com/landeanfen/p/5287064.html 前言:最近,讨论到数据库安全的问题,于是就引出了WebApi服务没有加任何验证的问题.也就 ...
- CTFHUB 《基础认证》:burp使用,basic请求了解
题目简介:在HTTP中,基本认证(英语:Basic access authentication)是允许http用户代理(如:网页浏览器)在请求时,提供 用户名 和 密码 的一种方式.详情请查看 htt ...
- CTFHub-web前置技能-请求方式、302跳转、cookie、基础认证、响应包源代码
CTFHub-web前置技能 1.请求方式 方法一:burp抓包 将GET改为CTFHUB 放包 方法二:curl 命令 利用 curl 命令对本题求解在命令行中输入 相关知识 号 方法 描述 1 G ...
- CTFHUB http协议题目 学习笔记 详细步骤 请求方式 302跳转 cookie 基础认证 响应源代码
CTFHUB http协议题目 学习笔记 详细步骤 请求方式 302跳转 cookie 基础认证 响应源代码 WEB-HTTP协议 1-请求方式 2-302跳转 3.cookie 4.基础认证 5.响 ...
最新文章
- 我来做百科(第二十天) D
- python runner是什么_HttpRunner-01-初识
- Lesson 6.动态计算图与梯度下降入门
- 大数据集群问题排查:时间不同步导致hbase regionserver只启动了部分节点的进程
- 数组的最长平台c语言,2010台湾省C语言版高级
- 学习mysql中使用inner join,left join 等
- 2017.4.14 java基本类型和包装类的区别
- mysql 多表 update sql语句总结
- SQL Server安装问题程序被挂起的错误解决办法
- 关于xendesktop外部SQL数据库连接设置的问题
- 2017年二级计算机c真题语言,2017全国计算机二级C考试真题
- MATLAB机械动力分析,用MATLAB实现机械动力学
- 标识符——C语言基础知识
- 常用ansible命令
- ps里jpg格式的图怎么保存成透明的
- Ada 程序设计语言(The Ada Programming Language)[第一集]
- 计算机专业英语(二)缩略词全称与解释
- NSIS制作自己的安装包
- 《Python编程:从入门到实践》读书笔记——第6章:字典
- 实现新闻搜索功能:用户输入关键字,用来匹配新闻标题或内容。
热门文章
- pycharm安装scrapy失败_运行Scrapy程序时出现No module named win32api问题的解决思路和方法...
- Python-装饰器
- python3 pillow使用测试
- 【BZOJ 4832】 [Lydsy2017年4月月赛] 抵制克苏恩 期望概率dp
- java时间计算,获取某月第一天和最后一天
- scanf函数详解与缓冲区
- HTML-完美解决父子元素的外边距重叠和高度塌陷问题
- 在HTML文件的表单中添加{%csrf_token%}便可以解决问题
- “Can’t be opened because Apple cannot check it for malicious software“ 解决方案
- Ruby中的require_relative和require有什么区别?