web服务器
Posted skyzy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了web服务器相关的知识,希望对你有一定的参考价值。
web服务器: 文件共享: nfs samba:一般用于局域网中 ftp http:一般用于公网 tcp 80 httpd: apache: 1、完全开源 2、跨平台 3、支持多种编程语言 4、采用模块化的设计 5、安全稳定 IE:www.taobao.com——>IP:port[path]——>apache——>client www.taobao.com——>apache——>php-cgi(模块)——>解析——>apache——>client LAMP:Linux+apache+mysql+php LNMP:Linux+ngix+mysql+php httpd:rhel6.5 自带的 1、 2、 3、软三步曲 # rpm -q httpd httpd-2.2.15-29.el6_4.x86_64 httpd-manual.noarch 帮助手册 中文的手册: http://www.jinbuguo.com/apache/menu22/index.html # man httpd.conf # 浏览器输入:localhost/manual.noarch # firefox http://localhost/manual /etc/httpd/conf 配置文件的主目录 /etc/httpd/conf/httpd.conf 主配置文件 /etc/httpd/conf.d 子配置文件主目录 /var/www/html 静态页面的数据根目录 /var/run/httpd 进程目录 /usr/sbin/httpd 二进制命令 /etc/rc.d/init.d/httpd 红帽的启动脚本 /etc/httpd 服务主目录 /usr/sbin/apachectl 官方的二进制命令 /var/log/httpd 日志文件目录 /etc/httpd/logs 日志文件目录 /etc/httpd/conf.d/README 说明书 /etc/httpd/conf.d/welcome.conf 欢迎页 /etc/httpd/modules 模块目录 /etc/httpd/run 进程目录 /etc/logrotate.d/httpd 日志轮转文件 /etc/rc.d/init.d/htcacheclean 官方的启动脚本 4、了解配置文件 # /etc/httpd/conf/httpd.conf ServerRoot "/etc/httpd" PidFile run/httpd.pid Timeout 60 KeepAlive Off MaxKeepAliveRequests 100 KeepAliveTimeout 15 Listen 80 默认端口 Include conf.d/*.conf 加载外部子目录 User apache 服务运行时的属主 Group apache 属组 ServerAdmin [email protected] 管理员邮箱 DocumentRoot "/var/www/html" 默认数据根目录 Alias /icons/ "/var/www/icons/" 定义别名 5、根据需求通过修改配置文件来完成服务的搭建 需求1:共享/data/下的所有文件 方法1: # mkdir /data # touch /data/file{1..5} # ln -s /data /var/www/html/notes 测试: http://localhost/notes 方法2:通过别名方式共享 # vim /etc/httpd/conf/httpd.conf Alias /test/ "/data" 注意:别名后面的斜杠会影响访问,如果有,那么访问时必须加上 测试: http://localhost/test/ 需求2:访问一个静态网页文件 # echo this is test page > /var/www/html/index.html 说明: 如果默认数据根目录里既有网页文件也有数据文件,优先去找网页文件;如果没有网页文件也不会看到数据文件,将welcome.conf注释掉就可以 需求3:自定义数据根目录 # vim /etc/httpd/conf/httpd.conf DocumentRoot "/webroot" 需求4:基于用户名密码的访问控制 思路: 1、先去创建一个密码文件 2、配置文件里指定该密码文件 步骤: (1) # htpasswd -cm /etc/httpd/conf/htpassword user1 【创建一个用户user1并且将用户user1加入到指定的密码文件(/etc/httpd/conf/htpassword)内】 # cat /etc/httpd/conf/htpassword user1:$apr1$JBb9P6vF$Ozv.3JG4HL295yJaIL3iX1 # htpasswd -mb /etc/httpd/conf/htpassword user2 123 【创建一个明文密码的用户user2】 (-c:指定密码文件,-m:md5加密 -b:取消交互) (2) 允许admin组里的所有成员访问该目录: 1、创建一个组文件(保存的是组成员及组名) 2、创建一个密码文件 3、修改配置文件 (1)# vim /etc/httpd/conf/groups --->groupname:username1 username2 (将组的成员加入到原密码文件文件/etc/httpd/conf/htpassword中即可) (2)# vim /etc/httpd/conf/httpd.conf DocumentRoot "/webroot" 需求5:只允许10.1.1.2主机访问(网络的访问控制) 单独使用: Allow from address Deny from 205.252.46.165 Deny from host.example.com Deny from 192.101.205 Deny from cyberthugs.com moreidiots.com 组合使用: Order deny,allow 先拒绝再允许;如果deny和allow冲突以allow为准 Deny from all Allow from dev.example.com Order allow,deny 先允许后拒绝;如果allow和deny冲突以deny为准 需求6:一台服务器上需要搭建多个web,怎么办? 方法1: DocumentRoot /webroot web1:/webroot/bbs/index.html web2:/webroot/taobao/index.html http://10.1.1.1/taobao www.bbs.com ——>bbs web www.taobao.org ——> taobao web 方法2:虚拟主机 基于IP的虚拟主机 10.1.1.1 ——>this is bbs page! 192.168.0.1——>this is taobao page! 步骤: (1)配置网卡2个ip (2)创建虚拟主机 (3)创建相应的数据目录及首页文件 # mkdir /www/{bbs,taobao} -p # cd /www/ # echo this is bbs page!> bbs/index.html # echo this is taobao page!> taobao/index.html (4)重启服务 # service httpd restart (5)测试验证 http://10.1.1.1 http://192.168.0.1 基于端口的虚拟主机 http://10.1.1.1:80——>this is 80 page! http://10.1.1.1:8080——>this is 8080 page! /webserver/80 /webserver/8080 # vim /etc/httpd/conf/httpd.conf --->Listen 8080 # mkdir /webserver/{80,8080} # echo this is 80 page! >/webserver/80/index.html # echo this is 8080 page! >/webserver/8080/index.html 测试:http://10.1.1.1:80 http://10.1.1.1:8080 基于域名的虚拟主机 www.bbs.com——>this is bbs webserver! www.abc.net——>this is abc webserver! 环境: webserver:vm1 10.1.1.1 dns:vm2 10.1.1.2 (1)搭建dns服务器(vm2) # vim bbs.com.zone $TTL 1D @ IN SOA bbs.com. rname.invalid. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum @ NS dns1.bbs.com. dns1 A 10.1.1.2 www A 10.1.1.1 # vim abc.net.zone $TTL 1D @ IN SOA abc.net. rname.invalid. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum @ NS dns1.abc.net. dns1 A 10.1.1.2 www A 10.1.1.1 (2)发布虚拟主机(vm1) NameVirtualHost *:80以上是关于web服务器的主要内容,如果未能解决你的问题,请参考以下文章