HTTP服务基础

防火墙设置[root@server0 ~]# firewall-cmd --set-default-zone=trusted

HTTP服务基础

独立web服务器(基于B/S)架构的网页服务
    服务端提供网页
    浏览器下载并显示网页
    Hyper Text Markup Language,超文本标记语言
    Hyper Text Transfer Protocol,超文本传输协议


    软件包:httpd(Apache软件基金会)
    系统服务:httpd
    提供的默认配置
        Listen:监听端口号(80)

        SreverName:本站点注册的DNS名称
        DocumentRoot:网页根目录(/var/www/html)

        DirectoryIndex:起始页/首页文件名(index.html)
    
    服务端server0
        1.安装软件包httpd
            [root@server0 ~]# yum -y install  httpd

        2.重启httpd服务
            [root@server0 ~]# systemctl restart httpd
            [root@server0 ~]# systemctl enable httpd
        3.书写一个页面
            [root@server0 ~]# echo  '<h1>nsd9527'  >  /var/www/html/index.html
            [root@server0 ~]# cat /var/www/html/index.html
    客户端desktop0
            1.访问服务端地址
                [root@desktop0 ~]# firefox  172.25.0.11

– ServerName:本站点注册的DNS名称(空缺)
– DocumentRoot:网页文件根目录(/var/www/html)

    DNS服务器:classroom.example.com
            server0.example.com
            www0.example.com
            webapp0.example.com

    通过ServerName指定本网站的域名为server0.example.com
    服务端server0
        1.修改配置文件/etc/httpd/conf/httpd.conf

            ServerName server0.example.com:80  /ServerName

        2.重启httpd服务

            [root@server0 ~]# systemctl restart httpd
    客户端desktop0
        [root@desktop0 ~]# firefox  server0.example.com

    服务端server0
        1.建立新的网页文件根目录
            [root@server0 ~]# mkdir  /var/www/myweb
            [root@server0 ~]# echo '<h1>wo  shi  ni  da  ye'  >  /var/www/myweb/index.html
            [root@server0 ~]# cat /var/www/myweb/index.html
        2.修改配置文件
            [root@server0 ~]# vim /etc/httpd/conf/httpd.conf 
            DocumentRoot "/var/www/myweb"
        3.重启httpd服务
            [root@server0 ~]# systemctl restart httpd
    客户端desktop0访问
            [root@desktop0 ~]# firefox  server0.example.com

客户端浏览器路径 与 服务器真实路径的对照

    客户端浏览器路径 firefox 172.25.0.11 -> DocumentRoot目录下/var/www/myweb

    客户端  firefox 172.25.0.11/abc -> DocumentRoot目录下/var/www/myweb/abc
    客户端  firefox 172.25.0.11/test -> DocumentRoot目录下/var/www/myweb/test

虚拟web主机的含义及类型

( 一旦启用虚拟Web主机功能,所有的站点都必须用虚拟Web来实现)
虚拟web主机
    由一台服务器提供多个不同的web站点
区分方式
    基于域名的虚拟主机
    基于端口的虚拟主机
    基于IP地址的虚拟主机
    
配置文件
    /etc/httpd/conf/httpd.conf    (主配置文件)
    /etc/httpd/conf.d/*.conf        (调用主配置文件:管理分类)
搭建基于域名的虚拟主机
    为每个虚拟站点添加配置(容器是=式配置语句)
        <VirtualHost  IP地址:端口号>
            ServerName 此站点的DNS名称
            DocumentRoot  此站点的网页根目录
        </VirtualHost>

虚拟机Server0
    [root@server0 ~]# vim /etc/httpd/conf.d/nsd01.conf
    <VirtualHost *:80>               #在本机所有IP地址的80端口启用虚拟web功能
     ServerName www0.example.com     #指定网站域名
     DocumentRoot /var/www/haha      #指定网页文件根目录
    </VirtualHost>
    <VirtualHost *:80>
     ServerName webapp0.example.com
     DocumentRoot /var/www/xixi
    </VirtualHost>

    [root@server0 ~]# mkdir /var/www/haha /var/www/xixi
    [root@server0 ~]# echo '<h1>wo shi haha' > /var/www/haha/index.html
    [root@server0 ~]# echo '<h1>wo shi xixi' > /var/www/xixi/index.html
    [root@server0 ~]# cat /var/www/haha/index.html
    [root@server0 ~]# cat /var/www/xixi/index.html
    [root@server0 ~]# systemctl restart httpd

虚拟机desktop0
    [root@server0 ~]# firefox  www0.example.com
    [root@server0 ~]# firefox  webapp0.example.com

虚拟机Server0

    [root@server0 ~]# vim /etc/httpd/conf.d/nsd01.conf
    <VirtualHost *:80>               #在本机所有IP地址的80端口启用虚拟web功能
     ServerName www0.example.com     #指定网站域名
     DocumentRoot /var/www/haha      #指定网页文件根目录
    </VirtualHost>
    <VirtualHost *:80>
     ServerName webapp0.example.com
     DocumentRoot /var/www/xixi
    </VirtualHost>

    <VirtualHost *:80>
     ServerName server0.example.com
     DocumentRoot /var/www/myweb
    </VirtualHost>

配置httpd访问控制

客户机地址限制
    仅允许本机访问,其他客户端禁止访问
        使用<Directory>配置区段
            每个文件夹自动继承其父目录的ACL访问控制
            除非针对子目录有明确设置

                <Directory 目录的绝对路径> 

                Require all denied|granted

                Require ip IP或网段地址.....

                </Directory>
            ------------------------------------------

                <Directory />
                    Require all denied     #拒绝所有
                </Directory>

                <Directory "/var/www">
                    Require all granted    #允许所有
                </Directory>

    服务端
       
        [root@server0 ~]# mkdir /var/www/myweb/private                      //在上案例的前提下
        [root@server0 ~]# echo  007VS9527  >  /var/www/myweb/private/index.html
        [root@server0 ~]# vim /etc/httpd/conf.d/nsd02.conf                  //创建调用主配置文件的文件夹
        <Directory /var/www/myweb/private>                              //允许本机访问,对外禁止
            Require ip 172.25.0.11
        </Directory>
                    
        [root@server0 ~]# systemctl restart httpd

    客户端
        [root@desktop0 ~]# firefox  server0.example.com/private             //访问网站子目录

    案例4:使用自定Web根目录
        调整 Web 站点 http://server0.example.com 的网页
        目录,要求如下:
        1)新建目录 /webroot,作为此站点新的网页目录

        虚拟机Server0
        1.建立新的网页文件目录
            [root@server0 ~]# mkdir /webroot
            [root@server0 ~]# echo wo shi webroot > /webroot/index.html
            [root@server0 ~]# cat /webroot/index.html
        2.修改的网页文件根目录
            [root@server0 ~]# vim /etc/httpd/conf.d/nsd01.conf  #修改内容
            <VirtualHost *:80>
             ServerName server0.example.com
             DocumentRoot /webroot
            </VirtualHost>
        3.修改访问控制
            [root@server0 ~]# vim /etc/httpd/conf.d/nsd02.conf  #追加写入
            <Directory /webroot>
                Require all granted    #允许所有
            </Directory>
        4.重起服务
            [root@server0 ~]# systemctl restart httpd

        5.SELinuxc策略的控制安全上下文(标签)
            [root@server0 ~]# ls -Zd /var/www           //查看目录的上下文值
            [root@server0 ~]# ls -Zd /webroot

        方式1:参照标准目录,重设新目录的属性
        格式:chcon -R --reference=模板目录  新目录
            [root@server0 ~]# chcon -R --reference=/var/www    /webroot/     //修改标签值

            [root@server0 ~]# ls -Zd /webroot/

        方式2:直接修改权限
            [root@server0 ~]# setenforce 0
        客户端
            [root@desktop0 ~]# firefox  server0.example.com/private             //访问网站子目录
            [root@desktop0 ~]# firefox  server0.example.com

部署动态网站

静态网站的运行
    服务端的原始网页=浏览器访问到的网页
        由Web服务软件处理所有请求
        文本(TXT/html),图片(ipg/png)等静态资源

图片

动态网站的运行
    服务端的原始网页!=浏览器访问到的网页
        由Web服务软件接受请求,动态程序转后端模块处理
        PHP网页,Pyhton网页,JSP网页........

图片

虚拟机Server0
    1.下载Python页面,以webapp0.example.com
        [root@server0 ~]# cat /etc/httpd/conf.d/nsd01.conf 
        [root@server0 ~]# cd /var/www/xixi
        # wget http://classroom.example.com/pub/materials/webinfo.wsgi
        [root@server0 xixi]# ls
        [root@server0 xixi]# cat webinfo.wsgi 

    2.修改虚拟Web主机配置,方便用户的访问,网页的跳转(网页的别名)

        [root@server0 xixi]# vim /etc/httpd/conf.d/nsd01.conf 

        <VirtualHost *:80>
         ServerName webapp0.example.com
         DocumentRoot /var/www/xixi

         Alias  /   /var/www/xixi/webinfo.wsgi

      当客户端 访问到网页文件的根目录时 ,将/var/www/xixi/webinfo.wsgi呈现给客户端

        </VirtualHost>

        [root@server0 xixi]# systemctl restart httpd

客户端:虚拟机Desktop0 测试   firefox  webapp0.example.com

    3.翻译Python页面
        [root@server0 /]# yum -y install mod_wsgi  #安装可以识别Python代码程序
        [root@server0 /]# vim /etc/httpd/conf.d/nsd01.conf

        <VirtualHost *:80>
         ServerName webapp0.example.com
         DocumentRoot /var/www/xixi
         WsgiScriptAlias /  /var/www/xixi/webinfo.wsgi

        </VirtualHost>

     最终显示页面的内容为    UNIX时间戳 : 1970-1-1 0:0:0 到 指定时间 经过的秒数

        [root@server0 xixi]# systemctl restart httpd

    客户端:虚拟机Desktop0 测试  
         firefox  webapp0.example.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值