第 10 次课 2 学时 授课时间_ __
教学主题 | Web服务器的基本配置 |
教学要求 | 1、理解WEB服务器的功能 2、掌握WEB服务器的安装配置使用方法 |
教学重点 | WEB服务器的安装、配置、使用方法 |
教学难点 | WEB服务器的配置 |
教学方法 | 项目驱动 案例教学 |
教学手段 | 多媒体 演示 |
讲授要点 | 1、WEB服务器的功能 2、WEB服务器的安装、配置、使用方法,及说明 |
作 业 | 补充 |
参考资料 | |
注:本页为每次课教案首页
教 学 内 容 | 备注与后记 |
一、项目导入 在因特网上使用最多的服务是什么?web服务器是做什么服务的?用http:什么协议?怎么做的呢? 二、课堂讲解 (一)、 软件安装及准备工作 #yum install httpd #service httpd start 然后打开浏览器,在地址栏内输入本地地址: localhost/ 或者127.0.0.1/ 回车,然后出现下图 (二)、 配置文件说明 主要配置文件 /etc/httpd/f(用cat查看) 文件中的主要内容及解释: #:注释行 用来做说明 KeepAlive Off KeepAlive值是个布尔值,有两个值On和Off,简单来说,当值为On的时候,用户发起HTTP请求后,Apache不会立刻关闭这个连接,当还有用户发起HTTP请求时,还会使用这个连接,什么时候关闭呢?看KeepAliveTimeout这个值,当时间达到KeepAliveTimeout这个值的时候才会关闭连接。当值为Off的时候,用户发起HTTP请求后,Apache会立刻关闭这个连接,缺点就是每次访问都要执行一次TCP握手,增加了CPU的开销。 如何设置这个值呢? 当网站静态页面居多的时候,适合把这个值设置为On;当网站多为动态页面时,适合把这个值设置为Off。可以算一下,假设KeepAlive超时时间为5秒,网站每秒有50个用户访问,此时Apache的总进程数为50*5=250个,假设每个进程占用内存为4M,那么Apache的总内存占用为250*4M=1000M,1G的内存就这样没了,这还是只有50个连接的情况,如果把KeepAlive的值设置为Off,网站每秒有50个用户访问,每个用户连续访问3个页面,每个页面占用4M内存,那么Apache的内存占用为150*3*4=600M,可以看出,节省了大量内存! 一般情况下保持关闭,如果服务器很牛,开开也行 Vi /etc/httpd/f <IfModule prefork.c> StartServers 8 启动服务进程数量(相当于服务员数) MinSpareServers 5 至少空闲的进程数量 MaxSpareServers 20 最多有20个闲人,多了就回收了。 ServerLimit 256 MaxClients 256 最多访问客户量 MaxRequestsPerChild 4000 一个客户端可能开好几个页面,总数不能超 </IfModule> User apache 万一黑客劫持了服务器,也只能局限于apache用户和组 Group apache #ServerName 服务器监听哪个域名(ip)及端口 DocumentRoot "/var/www/html" 默认主页的目录 <IfModule mod_userdir.c> user用户主页的设置 可以ip/~user来访问 # # UserDir is disabled by default since it can confirm the presence # of a username on the system (depending on home directory # permissions). # #UserDir disabled UserDir on 这个设置打开,则可以ip/~user来访问 # # To enable requests to /~user/ to serve the user's public_html # directory, remove the "UserDir disabled" line above, and uncomment # the following line instead: # UserDir public_html 这个需要在用户/home/user/下建立public_html目录 </IfModule> Web服务器的实践项目案例配置 案例一、设置用户的主页 以user用户为例,该用户家(主)目录在/home/user 如果natash用户不存在,则首先建立该用户 # adduser natasha # cat /etc/passwd | grep natasha natasha:x:501:501::/home/natasha:/bin/bash 1、 第一步,确定当前是root用户,编辑参数文件 # vim /etc/httpd/f (vim 是vi的升级版本) 修改<IfModule mod_userdir.c> 中的以下两个地方的内容(在f 的36%位置) <IfModule mod_userdir.c> //user用户主页的设置 可以ip/~user来访问 #UserDir disable //这个设置注释,则可以ip/~user来访问 UserDir public_html //这个需要在用户/home/user/下建立public_html目录 </IfModule> 2、 第二步,为/home/natasha及其子目录赋予相应权限 #chmod –R 755 /home/natasha 3、 第三步,以natasha用户身份建立相应目录及文件 # su – natasha $ pwd $ cd /home/natashaip $ mkdir public_html $ chmod o+x . [natasha@hpc ~]$ ll total 12 drwxrwxr-x. 2 natasha natasha 4096 Sep 16 17:08 public_html … … [natasha@hpc ~]$ vim ./public_html/index.html //添加一句话在该文件中 hello!world!This is natasha’s masterPage ! [natasha@hpc ~]$su 4、 第四步,配置Selinux上下文(这一步非常重要) #chcon –R -t httpd_sys_content_t /home/natasha (或者这么写chcon - - reference= /var/www/html /home/natasha 建议写法) 注意:只要是不在 /var/www/目录下建立的网站目录,都需要设置selinux上下文。 5、 第五步,验证 最后验证一下,在该局域网内一台机器,输入地址(httpd所在机器ip202.207.122.160) 202.207.122.160/~natasha/ ● 查看网络接口eth0的配置信息。 ● 为此网络接口设置IP地址、广播地址、子网掩码、并启动此网络接口。利用ifconfig命令查看系统中已经启动的网络接口。仔细观察所看到的现象,记录启动的网络接口。 6、 问题汇总: 如果出现下图,不能访问 也可能是防火墙的原因,请设置防火墙规则,如下图: 若不是你做的网页: # vim /etc/httpd/f (第292行) 再重新启动httpd 案例二、设置独立网站 Web应用案例:部门内部需要搭建一台Web服务器,采用IP地址和端口为192.168.3.160:80,首页采用index.html文件。管理员E-mail地址为root@example。所有的网站资源都放置在/var/www/html目录下。 步骤1:修改主配置文件f # vim /etc/httpd/f ServerRoot "/etc/httpd" Timeout 180 Listen 80 ServerAdmin root@example ServerName 192.168.1.160:80 DocumentRoot "/var/www/html" DirectoryIndex index.html AddDefaultCharset GB2312 以上文件各行代码的功能说明如下: 设置Apache的根目录为/etc/httpd。 设置客户端访问的超时时间为180秒。 设置httpd监听80端口。 html主页设置管理员E-mail地址为root@lxw。 设置服务器的主机名和监听端口为192.168.1.80:80。 设置Apache的文档目录为/var/www/html。 设置主页文件为index.html。 设置服务器的默认编码为GB2312。 步骤2:重新启动httpd服务 步骤3:将制作好的网页放置在目录/var/www/html中。 步骤4:测试。 案例三、设置虚拟网站 现实需求:一台Web服务器如果仅为一个网站提供服务,那将造成极大的浪费,现在希望多个Web网站建立在一台Web服务器上,网站之间互不干扰。 基于IP地址的虚拟主机 假设Apache服务器具有192.168.0.12和192.168.0.13两个IP地址。现需要利用这两个IP地址分别创建2个基于IP地址的虚拟主机,要求不同的虚拟主机对应的主目录不同,默认文档的内容也不同。 1. 通过图形界面为eth0网卡添加另外两个ip,如下图所示 2. 分别创建“/var/www/ip2”和“/var/www/ip3”两个主目录和默认首页文件。 # mkdir /var/www/ip2 # mkdir /var/www/ip3 # echo "this is 192.168.0.12's" > /var/www/ip2/index.html # echo "this is 192.168.0.13's" > /var/www/ip3/index.html 3. 设置DNS解析 //目的是httpd启动时不出现错误提示 # vim /var/ //正向解析文件 $TTL 1D @ IN SOA ample. ample. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS @ A 127.0.0.1 AAAA ::1 dns IN A 192.168.0.111 server IN A 192.168.0.111 www IN A 192.168.0.111 test IN A 202.207.122.101 ftp IN CNAME dns w2 IN A 192.168.0.12 //此处添加2行 w3 IN A 192.168.0.13 # vim /var/named/192. //编辑反向解析文件 $TTL 1D @ IN SOA example ample. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS @ A 127.0.0.1 AAAA ::1 PTR localhost. 111 IN PTR ample. 112 IN PTR ample. 12 IN PTR w2.example. 13 IN PTR w3.example. 4. 在f文件中,设置基于IP地址的虚拟主机,配置内容如下。 # vim /etc/httpd/f <VirtualHost 192.168.0.12:80> ServerAdmin ample DocumentRoot /var/www/ip2 Directoryindex index.html </VirtualHost> <VirtualHost 192.168.0.13:80> ServerAdmin ample DocumentRoot /var/www/ip3 Directoryindex index.html </VirtualHost> 5. 重新启动httpd服务。 # service named restart # service httpd restart 6. 在客户端浏览器地址栏中分别键入地址进行访问。 192.168.0.12/ 192.168.0.13/ 案例四、基于域名的虚拟主机 在Web服务器(仅有1个独立的IP地址)上配置3个Web网站,分别用ample、www2. example、www3. example表示,通过设定虚拟主机,访问上述三个域名,从而分别访问三个不同的网站。 配置过程如下: 1. 在DNS服务器的区域文件中添加3行(配置www1、www2、www3的别名)。 # vim /var/ $TTL 1D @ IN SOA ample. ample. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS @ A 127.0.0.1 AAAA ::1 dns IN A 192.168.0.111 server IN A 192.168.0.111 www IN A 192.168.0.111 test IN A 202.207.122.101 ftp IN CNAME dns www1 IN A 192.168.0.111 //此处添加3行(标为红字体) www2 IN A 192.168.0.111 www3 IN A 192.168.0.111 w2 IN A 192.168.0.12 w3 IN A 192.168.0.13 # vim /var/named/192. //目的是httpd启动时不出现错误提示 $TTL 1D @ IN SOA example ample. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS @ A 127.0.0.1 AAAA ::1 PTR localhost. 111 IN PTR ample. 111 IN PTR ample. 111 IN PTR ample. //此处添加3行(标为红字体) 111 IN PTR ample. 112 IN PTR ample. 12 IN PTR w2.example. 13 IN PTR w3.example. 2. 在/var/www/html下创建3个目录www1、www2、www3,并为每个网站创建一个index.html文件。 # mkdir /var/www/html/www1 # mkdir /var/www/html/www2 # mkdir /var/www/html/www3 # echo "This is my www1 masterPage." > /var/www/html/www1/index.html # echo "This is my www2 masterPage." > /var/www/html/www2/index.html # echo "This is my www3 masterPage." > /var/www/html/www3/index.html 3. 修改/etc/httpd/f文件 # vim /etc/httpd/f //修改文件,确保文件中存在以下内容 NameVirtualHost 192.168.0.111:80 <VirtualHost 192.168.0.111:80> ServerAdmin ample DocumentRoot /var/www/html/www1 ample Directoryindex index.html </VirtualHost> <VirtualHost 192.168.0.111:80> ServerAdmin ample DocumentRoot /var/www/html/www2 ample Directoryindex index.html </VirtualHost> <VirtualHost 192.168.0.111:80> ServerAdmin ample DocumentRoot /var/www/html/www3 ample Directoryindex index.html </VirtualHost> 4. 重启httpd服务,在浏览器上测试。 # service named restart # service httpd restart 四、知识点扩充 1.chkconfig命令详解(请注意以下所有的--为双短横线 - - ,中间无空格) 语法:chkconfig [--add] [--del] [--list] [系统服务名称] 或 chkconfig [--level<等级代号>][系统服务名称][on/off/reset] 补充说明: linux os 将操作环境分为以下7个等级: 0:开机(请不要切换到此等级) 1:单人使用者模式的文字界面 2:多人使用者模式的文字界面,不具有网络档案系统(NFS)功能 3:多人使用者模式的文字界面,具有网络档案系统(NFS)功能 4:某些发行版的linux使用此等级进入x windows system 5:某些发行版的linux使用此等级进入x windows system 6:重新启动 参数: --add 新增所指定的系统服务 --del 删除所指定的系统服务 --level 指定该系统服务要在哪个执行等级中开启或关闭 --list 列出当前可从chkconfig指令管理的所有系统服务和等级代号 on/off/reset 在指定的执行登记,开启/关闭/重置该系统服务 chkconfig命令主要用来更新(启动或停止)和查询系统服务的运行级信息。谨记chkconfig不是立即自动禁止或激活一个服务,它只是简单的改变了符号连接。 语法: chkconfig --list [name] chkconfig --add name chkconfig --del name chkconfig [--level levels] name chkconfig [--level levels] name 解释: chkconfig 没有参数运行时,显示用法。如果加上服务名,那么就检查这个服务是否在当前运行级启动。如果是,返回true,否则返回false。如果在服务名后面指定了on,off或者reset,那么chkconfi 会改变指定服务的启动信息。on和off分别指服务被启动和停止,reset指重置服务的启动信息,无论有问题的初始化脚本指定了什么。on和off开关,系统默认只对运行级3,4,5有效,但是reset可以对所有运行级有效。 --level选项可以指定要查看的运行级而不一定是当前运行级。 chkconfig --list :显示所有运行级系统服务的运行状态信息(on或off)。如果指定了name,那么只显示指定的服务在不同运行级的状态。 chkconfig --add name:增加一项新的服务。chkconfig确保每个运行级有一项启动(S)或者杀死(K)入口。如有缺少,则会从缺省的init脚本自动建立。 chkconfig --del name:删除服务,并把相关符号连接从/etc/rc[0-6].d删除。 chkconfig [--level levels] name :设置某一服务在指定的运行级是被启动,停止还是重置。例如,要在3,4,5运行级停止nfs服务,则命令如下: chkconfig --level 345 nfs off 举例说明: 1.查看在各种不同的执行等级中,各项服务的状况: $chkconfig –list //请注意,双横线后面是单词,单横线后面是字母 2.列出系统服务vsftpd在各个执行等级的启动情况: $chkconfig --list vsftpd 3.在执行等级3,5时,关闭vsftpd系统服务: $chkconfig --level 35 vsftpd off 4.在执行等级2,3,5时,开启 vsftpd系统服务: $chkconfig --level 235 vsftpd on 5.关闭一些自己不需要的服务 -> 如果没有打印机: chkconfig --level 235 cups off 如果没有局域网: chkconfig --level 235 smb off 如果不需要远程用户登录的: chkconfig --level 235 sshd off 如果不需要定时任务的: chkconfig --level 235 crond off 如果不需要添加新硬件的: chkconfig --level 235 kudzu off 2.关闭Selinux方法 2.1临时关闭 #setenforce 0 //setenforce 1 打开,getenforce 获得当前Selinux运行状态 2.2永久关闭 修改/etc/selinux/config文件中的SELINUX="" 为 disabled ,然后重启。 3.关闭防火墙方法 3.1临时关闭 # service iptables stop // # service iptables start 打开 3.2 永久关闭 chkconfig --level 2345 iptables off //但是不推荐关闭防火墙 三、操作示范 演示教材例子 四、小结: 学会使用at ps kill等 | |
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论