首页 > 代码库 > httpd(一)--基础、认证

httpd(一)--基础、认证

www服务概述与工作原理

    www(world wide web)服务是网络中使用最多的服务之一,对网上内容的查找与浏览均需要该服务的支持,它使得用户可以通过交互式的图形界面获取信息和其他服务。www服务是基于web技术来实现浏览器/服务器模式的应用,由web服务器提供服务,用户通过客户机上的通用浏览器来发送和接受html(超文本标记语言)格式的文件,用户通常把web服务当做是www服务的具体实现。

    Web系统是客户端/服务器式的,由服务端程序和客户端程序两部分组成。客户端程序常用的比如IE等。用户在浏览器的地址栏输入同意资源定位地址(URL)来访问web页面。客户端与服务器的通信过程如图:

        wKioL1PwiP_DISXkAAEMNZiJf1c705.jpg

    

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

        wKiom1PwiWOhSwPNAACvGxhBqtw393.jpg

 

    先简单的定义一个页面的路径,域名指向www.ky.com,这里我的DNS已经配置好了,所以,在本机只需要把DNS指向DNS服务器就可以了,如果没有做DNS,那么把上面的“*”改成自己服务器的ip,访问的时候必须是ip访问。下面去创建一个简单的页面,来验证一下,如下:

    编辑配置文件

#vim /var/www/html/index.html

        wKiom1PwigGSsztEAAA-5QemGSw094.jpg

        创建好主页之后去本机测试一下

        wKioL1PwjSbzkrEiAABkr374Bf0155.jpg

        wKioL1PwjWSzDQH8AACkOTl8GE0320.jpg

        这样简单的网页就生成了

 

        默认配置文件及注释

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

         wKiom1Pwji-yQcgtAAD9Dx0bkfY420.jpg

<Directory "/var/www/html/admin">
       Optinos none   用户访问时都不允许
       AllowOverride AuthConfig  做认证相关的配置
       AuthType Basic 认证类型是basic
       AuthName "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

         wKiom1Pwj2ezlA_BAABugefysYU821.jpg

        查看一下这个文件

        wKioL1PwkLjQV7LFAAB3rx_0fS4279.jpg

        因为这个文件里面存放的都是用户和密码,所以创建的时候把这个文件隐藏了,向里面编写用户

    不要用vim,只能用上面的命令。编写完之后要#service httpd reload重读配置文件。

    这时,我们用客户端来访问以下admin这个文件

        wKioL1PwkQzRnlVQAAELsdADiZU106.jpg

        wKiom1PwkAPyiTRKAACtYqWRZw4323.jpg

        这样就完成了基于文件对用户做访问控制了

 

        基于组做访问控制

        1.创建两个新用户ky2、ky3

        wKioL1Pwk0iwPNJ5AACxpdFe-RQ696.jpg

        创建一个.htgroup文件,里面存放组信息

        wKioL1Pwk4GhsOllAAAge8ha9MY861.jpg

        只需把这里加一行组,指定刚才创建的组文件名,Require group kytest这个必须要指定组文件中

    的组名。

        wKiom1Pwkq7TDR7GAAEyrKBsSPw184.jpg

        这样就可以实现基于组的认证了。

本文出自 “鱼儿” 博客,请务必保留此出处http://kyfish.blog.51cto.com/1570421/1541332