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.16080,首页采用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.8080
设置Apache的文档目录为/var/www/html
设置主页文件为index.html
设置服务器的默认编码为GB2312
步骤2:重新启动httpd服务
步骤3:将制作好的网页放置在目录/var/www/html中。
步骤4:测试。
案例三、设置虚拟网站
现实需求:一台Web服务器如果仅为一个网站提供服务,那将造成极大的浪费,现在希望多个Web网站建立在一台Web服务器上,网站之间互不干扰。
基于IP地址的虚拟主机
假设Apache服务器具有192.168.0.12192.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地址)上配置3Web网站,分别用amplewww2. examplewww3. example表示,通过设定虚拟主机,访问上述三个域名,从而分别访问三个不同的网站。
配置过程如下:
1. DNS服务器的区域文件中添加3行(配置www1www2www3的别名)。
# 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个目录www1www2www3,并为每个网站创建一个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 设置某一服务在指定的运行级是被启动,停止还是重置。例如,要在345运行级停止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小时内删除。