课程目标

  • 了解常见的WEB服务器
  • 熟悉apache服务的基本配置
  • 掌握apache服务的虚拟主机配置
  • 熟悉apache的访问控制
  • 掌握MySQL的安装

    一、WEB服务概述

    1. WEB服务的特点

  • WEB服务分为客户端和服务端

  • 客户端一般是我们使用的浏览器
  • 服务端一般是我们所访问的网站提供的web服务器

    2. HTTP协议

  • web服务端与客户端通过HTTP协议(hypertext transfer protocol)超文本传输协议进行交互

  • apache或nginx都只支持静态页面的解析

    3. 静态页面和动态页面

  • HTML语言

    • 超文本标记语言,通过浏览器解释后展现出来
    • 有固定语法用来存储网页数据。现在的网页都用CSS网页来存储网页的表现形式
    • 现代主流的网页设计架构:
      内容存储:HTML
      网页架构:div
      网页样式:css
    • HTML形式的页面称之为静态页面,包含一些图片、文本、表格等
  • 动态语言

    • 网站使用特定的语言编写的一些程序,在用户访问时基于不同的条件生成不同的HTML代码返回给用户浏览器,这就实现网页的动态化

      4. WEB服务的中间件

  • php:php-fpm、hhvm

  • jsp:tomcat、jboss、resin、ibm websphere

    5. 常见的WEB组合方式

  • LAMP //php作为apache的模块

  • LNMP //php-fpm进程(服务)
  • nginx/apache +tomcat

    二、apache的介绍

  • 查看官方文档,需要yum list | grep ^httpd

    • yum -y install httpd-manual
    • 启动服务, service httpd start
    • 查看手册,浏览器访问:ip/manual/
  • 可以参考此文档, http://www.jinbuguo.com/

    三、搭建简易WEB服务

  1. 关闭防火墙和selinux
    1. 其实后期还是需要配置的。放行端口号、selinux安全上下文等
  2. 配置yum源
  3. 软件三步曲(查看安装|确认成功安装|查看软件的文件列表)
  4. 了解配置文件,程序的官方手册
  5. 根据需求通过修改配置文件来完成服务搭建
  6. 启动服务,开机自启动
  7. 测试验证

    四、apache服务的基本配置

    1.apache更改默认数据根目录

  • 使用的是2.2版本。供参考
  • 更改配置文件的参数vim /etc/httpd/conf/httpd.conf
    • DocumentRoot “webserver”
    • Directory “/webserver/“
  • 还有目录的相关权限
  • service httpd restart
  • 若出现主机名和IP地址解析问题,配置中开启并修改参数

    • ServerName 127.0.0.1:80

      2. apache共享文件

  • 软链接方式

需求1:共享web-server服务端的/data 目录里的所有文件

  1. apache服务默认情况下,到哪个目录里找相应的文件
  2. 将本地的/data 目录做一个快捷方式(软链接)到指定的目录里

步骤:

  1. mkdir -p /data
  2. touch /data/file{1..5}
  3. 创建软链接,ln -s /data/ /webserver/share
  4. 在浏览器访问,IP/share 必须有路径才能访问到共享目录
    1. 或是将测试页面删掉,mv /etc/httpd/conf.d/welcome.conf xxx/welcome.conf.bak
    2. service httpd restart
  • 别名方式
  1. 修改配置文件,
    • Alias /test/ "/data/"
    • `Directory "/data/"
  2. 注意:别名后面的路径 “/“ 会影响访问

    五、apache服务的访问控制

    1. 开启基本认证(用户密码)

    步骤:

  3. 创建密码文件,

    • htpasswd -cm /etc/httpd/conf/.passfile harry
    • 使用b 参数,是非交互的, 后面直接跟用户名 密码
  4. 修改配置文件,开启基本认证,vim httpd.conf

    1. <Directory "webserver/">
    2. ...
    3. AuthType Basic //开启基本认证
    4. AuthName "Input ypur name and password" //认证信息
    5. AuthBasicProvider File //指定文件
    6. AuthUserFile /etc/httpd/conf/.passfile //刚刚创建的密码文件
    7. Require user harry //只有.passfile 里的harry被允许可用
    8. </Directory>
  5. service httpd restart

  6. 访问网站测试,http://10.1.1.1

总结:

  1. 需要知道网站的数据根目录
  2. 将认证信息加入到
  3. 创建一个密码文件来保存用户名和密码

需求2:允许多个人来访问如何实现?

  1. 创建一个文件保存所有的用户(将很多用户加入到一个组里)
    • echo "admin:user01 user02 user03" >> /etc/httpd/conf/groups
  2. 将组里成员加入到密码文件中
    • htpasswd -mb /etc/httpd/conf/.passfile user01 123 或是利用脚本完成
  3. 修改主配置文件,(在官方文档里都有)

    1. <Directory "webserver/">
    2. ...
    3. AuthType Basic //开启基本认证
    4. AuthName "Input ypur name and password" //认证信息
    5. AuthUserFile /etc/httpd/conf/.passfile //刚刚创建的密码文件
    6. AuthGroupFile /etc/httpd/conf/groups
    7. Require group admin //只允许admin组成员访问,那么密码文件中的其他用户不可以访问
    8. </Directory>
  4. service httpd restart

  5. 继续测试验证

还可以添加一行参数,Require valid-user harry 就可允许其他用户和admin组成员都可访问。

  • Require user: 这是指定某个人访问。添加上后,某人可以访问但是admin组成员就不可访问了。

    2. 网络访问控制

  • 查看是否支持tcp-wrappers

    • rpm -ql httpd | grep bin
    • ldd /usr/sbin/httpd 不支持tcp-wrappers
    • 可以安装xinetd实现支持tcp-wrappers
  • 禁止部分ip不能访问网站(同样是在里面添加)
    • order allow,deny
      allow from all
      deny from 192.168.0.254 172.16.2.10
    • 针对某个网段
      order allow,deny
      allow from all
      deny from 192.168.0.254/255.255.255.0
    • 针对域名
      order allow,deny
      allow from all
      deny from node1.test.com *.test.com
    • 拒绝大部分,只允许某个ip
      order deny,allow
      deny from all
      allow from 192.168.0.254
  • HTTP通过状态码来标记返回信息。

    六、apache服务的虚拟主机

    1.基于IP的虚拟主机

    环境准备:
    eth0:10.1.1.1
    eth1:192.168.0.1
    需求:
    浏览器:http://10.1.1.1 this is 10.1.1.1 test page
    http://192.168.0.1 this ia 192.168.0.1 test page
    步骤:
  1. 创建相应的数据目录及首页文件
    1. mkdir -p /web{1,2}/data
    2. echo
  2. 发布网站
  3. /etc/httpd/conf/httpd.conf 文件最后面有VirtualHost example
    1. ctrl+v 泛选择,dd删除注释
  4. 测试验证

    1. 临时添加一条到192.168.0.0网络的路由,route add -net 192.168.0.0/24 dev eth0
    2. route -n

      2.基于端口的虚拟主机

      需求2:
      浏览器:http://10.1.1.1:80 this is 80 test page
      http://10.1.1.1:10086 this ia 10086 test page
      步骤:
  5. 创建相应的数据目录及首页文件

    1. mkdir -p /data/{80,10086}
    2. echo
  6. 发布网站

    1. 注意添加 Listen 10086,监听端口

      3.基于域名的虚拟主机

      需求:
      http://www.myweb.cc this is myweb.cc
      http://ftp.test.net this is myftp
      思路:
  7. 搭建DNS服务器

  8. 搭建web服务器
  9. 客户端指定DNS服务器测试验证

环境:
web-server:10.1.1.1
dns-server:10.1.1.3
client:10.1.1.2
步骤:

  1. 发布网站
    1. 注意打开注释,NameVirtualHost *:80
  2. 测试验证
    1. 注意,echo nameserver 10.1.1.3 >> /etc/reslov.conf