Web基础应用

Web基础应用

独立的Web服务

  • 只提供一个页面
构建基本的Web服务
  • 基于 B/S (Browser/Server)架构的网页服务

    • 服务端提供网页

    • 浏览器下载并显示网页

    • Hyper Text Markup Language,超文标记语言

    • Hyper Text Transfer Protocol,超文本传输协议

    • Listen:监听地址:端口(80)

    • ServerName:本站点注册的DNS名称(空缺)

    • DocumentRoot:网页根目录/var/www/html

    • DirectoryIndex:起始页/首页文件名index.html

  • 三步骤策略:装包、配置、启服务

    • 实现Web功能软件:httpd、Nginx、Tomcat

    • httpd由软件基金会Apache开创

    • 装包: httpd

    • 配置:[ /etc/httpd/conf/httpd.conf ] [ /etc/httpd/conf.d/.conf ]*

    • 启服务: [ systemctl restart httpd ]

  • yum 安装 httpd

  • 写入/var/www/html/index.html

  • systemctl restart httpd #重启服务

  • curl 192.168.88.240 #实验

  • 主要配置文件 : [ /etc/httpd/conf/httpd.conf ]

    1. 文件严谨性极高,容易报错 ----------------systemctl restart httpd 报错

    2. 看日志的报错信息 [ journalctl -xe ] -------------常见报错信息,查询报错信息 .注意error

DocumentRoot
  • 指定网页文件存放路径

  • 不指定时,默认路径是 [ /var/www/html/ ]

  • 默认的文件名是**[ index.html ]**

  • DocumentRoot 可以不大写 ,建议驼峰写法.

    1. **[ vim /etc/httpd/conf/httpd.conf ] 中 **

      修改{DocumentRoot “/var/www/myweb” } 使网页文件根目录变为myweb

    2. [ echo wo shi myweb > /var/www/myweb/index.html ]

      新的根目录下创建新的默认文件

    3. [ systemctl restart httpd ] #重启服务

    4. [ curl 192.168.88.240 ] 实验

httpd(规则)访问拒绝
  • httpd软件有访问控制

  • 根据存放页面的路径,实现访问控制

  • 访问控制规则:

    1. [ /var/www/html ]------------允许所有人访问

    2. [ / ]----------------------------------拒绝所有人访问

    3. 当子目录没有规则,默认继承上一级目录规则

    4. 针对此目录有单独配置,则不继承上一级目录规则

    5. [ /etc/httpd/conf/httpd.conf ]

      < Directory />

      Require all denied #拒绝所有人访问

      < /Directory>

      <Directory “/var/www”>

      Require all granted #允许所有人访问

      < /Directory>

      设定规则,想要新的规则需要新添加.需要修改路径DocumentRoot

      默认文件 index.html 也可以在配置文件中修改. 可以写多个,按顺序读取.

  • 总结

    • 访问出现测试页面的原因

      1. 没有网页文件

      2. 网页文件名称不是index.html

      3. httpd的访问控制规则拒绝

      4. SELinux的没有关闭

网络路径与实际路径
  • 网络路径:浏览器输入的访问路径
  • 实际路径:网页文件在服务器上存放的路径
  • 网络路径访问是DocumentRoot下的实际路径
调用配置文件
  • 可以自行创建,方便管理

  • [ /etc/httpd/conf.d/*.conf ] 自创配置文件

  • httpd 读取时 从主配置文件[ /etc/httpd/conf/httpd.conf ] 开始读取,

    之后再读取各种 [ /etc/httpd/conf.d*conf ] 各种自创配置文件

  • 编写配置文件

    1. [ DocumenRoot “xxxx/xxxx/xxx” ]
Listen:设置监听的端口
  • 端口:数字 标识协议与进程

  • http协议默认端口:80

  • 为响应的端口,处于监听状态

  • 允许一个进程有多个端口监听

  • 建议自定义端口时大于1024,端口的极限65535

  • 在 [ /etc/httpd/conf.d/*conf ] 自创配置文件里添加

    [ Listen 8000 ] 监听窗口为8000

    [ systemctl restart http ]

    [ curl 192.168.88.24:8000 ]

虚拟的Web服务

  • 提供多个页面

  • 一台Web服务器针对多个页面

  • 优先级比Documen高

区分方式(构建方式)
  1. 基于域名的虚拟主机

  2. 基于端口的虚拟主机

  3. 基于IP地址的虚拟主机 ( 理论层面 )

基于域名的虚拟主机
  • 为每个虚拟站点添加配置(背)

  • :为每个虚拟站点添加配置

    <VirtualHost IP地址:端口>

    ServerName 此站点域名,比如www.qq.com

    DocumentRoot 此站点的网页根目录

    < /VirtualHost>

    vim /etc/httpd/conf.d/bilibili.conf

    <VirtualHost *:80> --------------------------#在所有IP地址监听80

    ServerName www.qq.com ---------------- #网站的域名

    DocumentRoot /var/www/qq -------------- #网页文件路径

    < /VirtualHost>

    例:

    <VirtualHost *:80>

    ServerName www.lol.com

    DocumentRoot /var/www/lol

    < /VirtualHost>

    mkdir /var/www/qq /var/www/lol

    echo wo shi QQ > /var/www/qq/index.html

    echo wo shi LOL > /var/www/lol/index.html

    systemctl restart httpd

    vim /etc/hosts #只为本机提供域名解析

    ​ 192.168.88.240 www.qq.com www.lol.com

    curl www.qq.com

    curl www.lol.com

    一旦使用虚拟Web主机功能,所有的网站都必须使用虚拟Web方式进行呈现

基于端口的虚拟Web主机

[ vim /etc/httpd/conf.d/xixi.conf ]

<VirtualHost *:80>

ServerName www.qq.com

DocumentRoot /var/www/qq

< /VirtualHost>Listen 8080

<VirtualHost *:8080>

ServerName www.qq.com

DocumentRoot /var/www/lol

< /VirtualHost>

[systemctl restart httpd]

[ curl www.qq.com:8080 ] -------------- 显示 www.lol.com 的内容

[ curl www.qq.com ]

NFS服务基础

  • NFS: Network File System

  • 为客户机提供共享使用的文件夹

  • 协议 : 不用httpd ,NFS( 2049)、RPC( 111)

    • 所需软件包:nfs-utils (需确认安装)
    • 系统服务:nfs-server
服务端
  1. [ rpm -q nfs-utils ] #确认 nfs-utils 的安装

  2. [ mkdir /abc ] #创建共享目录

  3. [ echo haha > /abc/h.txt ]

  4. [ echo xixi > /abc/x.txt ]

  5. [ vim /etc/exports ] #修改配置文件

    /abc *(ro) #允许所有客户端进行只读访问 read only

  6. [ systemctl restart nfs-server ] #启动服务

客户端
  • 允许多个客户端都挂载服务端
  • 多个客户端可达到数据同步
  1. [ rpm -q nfs-utils ] #确认 nfs-utils 的安装
  2. [ showmount -e 192.168.88.240 ] #查看对方nfs共享
  3. [ mkdir /mnt/mynfs ] # 创建挂载点
  4. [ mount 192.168.88.240:/abc /mnt/mynfs ] # 挂载
  5. [ df -h /mnt/mynfs ] #查看正在挂载的设备信息
NFS开机自动挂载
  • [ _netdev ]:声明网络设备,系统在具备网络参数后,再进行挂载本设备
  • 注意服务端正在运行
    1. [ vim /etc/fstab ]
    2. [ umount /mnt/mynfs ] #把原先的挂载下了
    3. [ mount -a ] #挂载

触发挂载(了解)

  • autofs 服务提供的**“按需访问”**机制

    • 只要访问挂载点就会触发响应,自动挂载指定设备

    • 闲置一段时间后,会自动卸载

      1. [ yum -y install autofs ] #安装 autofs 包

      2. [ systemctl restart autofs ] #重新启动

      3. [ ls /misc ] #查看 /misc 下为空

      4. [ ls /misc/cd ]==>[ AppStream BaseOS … ] #查看 /misc/cd 时,触发,自动挂载

触发挂载的实现
  • 监控目录 : [ /misc ]

  • 主配置文件 [ /etc/auto.master ]

    • **监控点目录 挂载配置文件 **
  • 挂载配置文件,比如**[ /etc/auto.misc ]**

    • 触发点子目录 -挂载参数 :设备名
  • 访问/myauto/nsd,光驱设备自动挂载/ myauto/nsd

    1. [ yum -y install autofs ] #安装 autofs

    2. [ vim /etc/auto.master ] #[ 监控文件 ] 和 [ 挂载配置文件 ]的设定

      ***/myauto /opt/bilibili.txt DocumentRoot /var/www/nsd01 #指定网页文件路径

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

  1. [ vim /opt/bilibili.txt ] #挂载配置文件

    nsd -fstype=iso9660 :/dev/cdrom # [ 触发点子目录 ] [ -挂载参数 ] [ :设备名 ]

    bilibili -fstype=nfs 192.168.88.240:/abc

  2. [ systemctl restart autofs ] #重启

  3. [ ls /myauto/ ]

  4. [ ls /myauto/nsd ]

  5. [ ls /myauto/bilibili ]

相关推荐

  1. Web基础应用

    2024-03-24 21:34:06       43 阅读
  2. Web 应用基础 - ServletContext:获取与应用

    2024-03-24 21:34:06       42 阅读
  3. Web应用技术基础】CSS(3)——文本与文字样式

    2024-03-24 21:34:06       39 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-24 21:34:06       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-24 21:34:06       101 阅读
  3. 在Django里面运行非项目文件

    2024-03-24 21:34:06       82 阅读
  4. Python语言-面向对象

    2024-03-24 21:34:06       91 阅读

热门阅读

  1. js中的new Map的用法

    2024-03-24 21:34:06       45 阅读
  2. 算法刷题记录 Day27

    2024-03-24 21:34:06       42 阅读
  3. qt拖拽事件重写

    2024-03-24 21:34:06       39 阅读
  4. 解决 Electron 14 之后版本使用 remote 模块报错

    2024-03-24 21:34:06       39 阅读
  5. MYSQL事务面试题记录

    2024-03-24 21:34:06       47 阅读
  6. ns3使用cppyy load_library报错

    2024-03-24 21:34:06       39 阅读
  7. Linux实战笔记(三) 文件压缩

    2024-03-24 21:34:06       43 阅读
  8. 十分钟搞定多态知识点

    2024-03-24 21:34:06       39 阅读