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 认证类型是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
查看一下这个文件
因为这个文件里面存放的都是用户和密码,所以创建的时候把这个文件隐藏了,向里面编写用户
不要用vim,只能用上面的命令。编写完之后要#service httpd reload重读配置文件。
这时,我们用客户端来访问以下admin这个文件
这样就完成了基于文件对用户做访问控制了
基于组做访问控制
1.创建两个新用户ky2、ky3
创建一个.htgroup文件,里面存放组信息
只需把这里加一行组,指定刚才创建的组文件名,Require group kytest这个必须要指定组文件中
的组名。
这样就可以实现基于组的认证了。
本文出自 “鱼儿” 博客,请务必保留此出处http://kyfish.blog.51cto.com/1570421/1541332
httpd(一)--基础、认证,布布扣,bubuko.com
原文地址:http://kyfish.blog.51cto.com/1570421/1541332