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(一)--基础、认证相关推荐

  1. httpd mysql认证_Apache Httpd服务器之认证与授权

    此篇文章,我们主要探讨下关于Httpd服务器的认证及授权. 所谓认证,在我的理解就是用户通过一个凭证进入服务器的过程,而授权是用户是否有权限获取服务器中的某个资源.认证负责的是整体,授权负责的是局部. ...

  2. C#进阶系列——WebApi 身份认证解决方案:Basic基础认证

    阅读目录 一.为什么需要身份认证 二.Basic基础认证的原理解析 1.常见的认证方式 2.Basic基础认证原理 三.Basic基础认证的代码示例 1.登录过程 2./Home/Index主界面 3 ...

  3. 基础认证伪造工具phishery

    基础认证伪造工具phishery 基础认证(Basic Authentication)被广泛应用内部网站.路由器等Web应用中.用户必须填写对应的用户名.密码才能访问Web资源.Kali Linux新 ...

  4. HTTP基础认证Basic Authentication

    HTTP基础认证Basic Authentication Basic Authentication是一种HTTP访问控制方式,用于限制对网站资源的访问.这种方式不需要Cookie和Session,只需 ...

  5. c# WebApi之身份验证:Basic基础认证

    为什么需要身份认证 身份认证是为了提高接口访问的安全性,如果没有身份验证,那么任何匿名用户只要知道服务器的url,就可以随意访问服务器,从而访问或者操作数据库,这会是很恐怖的事. 什么是Basic基础 ...

  6. (转)C# WebApi 身份认证解决方案:Basic基础认证

    原文地址:http://www.cnblogs.com/landeanfen/p/5287064.html 阅读目录 一.为什么需要身份认证 二.Basic基础认证的原理解析 1.常见的认证方式 2. ...

  7. 【转】WebApi 身份认证解决方案:Basic基础认证

    参考路径:https://www.cnblogs.com/landeanfen/p/5287064.html 前言:最近,讨论到数据库安全的问题,于是就引出了WebApi服务没有加任何验证的问题.也就 ...

  8. CTFHUB 《基础认证》:burp使用,basic请求了解

    题目简介:在HTTP中,基本认证(英语:Basic access authentication)是允许http用户代理(如:网页浏览器)在请求时,提供 用户名 和 密码 的一种方式.详情请查看 htt ...

  9. CTFHub-web前置技能-请求方式、302跳转、cookie、基础认证、响应包源代码

    CTFHub-web前置技能 1.请求方式 方法一:burp抓包 将GET改为CTFHUB 放包 方法二:curl 命令 利用 curl 命令对本题求解在命令行中输入 相关知识 号 方法 描述 1 G ...

  10. CTFHUB http协议题目 学习笔记 详细步骤 请求方式 302跳转 cookie 基础认证 响应源代码

    CTFHUB http协议题目 学习笔记 详细步骤 请求方式 302跳转 cookie 基础认证 响应源代码 WEB-HTTP协议 1-请求方式 2-302跳转 3.cookie 4.基础认证 5.响 ...

最新文章

  1. 我来做百科(第二十天) D
  2. python runner是什么_HttpRunner-01-初识
  3. Lesson 6.动态计算图与梯度下降入门
  4. 大数据集群问题排查:时间不同步导致hbase regionserver只启动了部分节点的进程
  5. 数组的最长平台c语言,2010台湾省C语言版高级
  6. 学习mysql中使用inner join,left join 等
  7. 2017.4.14 java基本类型和包装类的区别
  8. mysql 多表 update sql语句总结
  9. SQL Server安装问题程序被挂起的错误解决办法
  10. 关于xendesktop外部SQL数据库连接设置的问题
  11. 2017年二级计算机c真题语言,2017全国计算机二级C考试真题
  12. MATLAB机械动力分析,用MATLAB实现机械动力学
  13. 标识符——C语言基础知识
  14. 常用ansible命令
  15. ps里jpg格式的图怎么保存成透明的
  16. Ada 程序设计语言(The Ada Programming Language)[第一集]
  17. 计算机专业英语(二)缩略词全称与解释
  18. NSIS制作自己的安装包
  19. 《Python编程:从入门到实践》读书笔记——第6章:字典
  20. 实现新闻搜索功能:用户输入关键字,用来匹配新闻标题或内容。

热门文章

  1. pycharm安装scrapy失败_运行Scrapy程序时出现No module named win32api问题的解决思路和方法...
  2. Python-装饰器
  3. python3 pillow使用测试
  4. 【BZOJ 4832】 [Lydsy2017年4月月赛] 抵制克苏恩 期望概率dp
  5. java时间计算,获取某月第一天和最后一天
  6. scanf函数详解与缓冲区
  7. HTML-完美解决父子元素的外边距重叠和高度塌陷问题
  8. 在HTML文件的表单中添加{%csrf_token%}便可以解决问题
  9. “Can’t be opened because Apple cannot check it for malicious software“ 解决方案
  10. Ruby中的require_relative和require有什么区别?