Web服务架构、构建Apache服务器、修改网页文件根目录、端口介绍、虚拟Web主机构建、NFS服务介绍、构建NFS服务、触发挂载介绍、触发挂载与NFS服务综合使用

发布时间:2024年01月18日

1 往事太多了:不负韶华,以梦为马,历尽千帆,归来仍是少年

2 环境准备

所有虚拟机设置SELinux运行模式

    [root@server ~]# getenforce
    Enforcing
    [root@server ~]# setenforce 0  #当前设置
    [root@server ~]# getenforce
    Permissive
    [root@server ~]# vim   /etc/selinux/config
    SELINUX=permissive

所有虚拟机设置防火墙(停止防火墙服务)

    [root@server ~]# yum  -y  remove  firewalld
    [root@server ~]# rpm   -q  firewalld

3 Web服务器简介

?基于 B/S (Browser/Server)架构的网页服务

–服务端提供网页

–浏览器下载并显示网页

?Hyper Text Markup Language,超文本标记语言

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

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

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

httpd由软件基金会Apache

虚拟机A:构建基本Web服务

    [root@server ~]# yum -y install  httpd   
    [root@server ~]# rpm  -q  httpd
    [root@server ~]# echo NSD Web Server >    /var/www/html/index.html
    [root@server ~]# systemctl restart httpd       #重启服务
    [root@server ~]# curl  192.168.88.240    #测试访问
    NSD  Web  Server

4 常见重点配置

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

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

DocumentRoot:网页根目录(/var/www/html)

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

主配置文件:/etc/httpd/conf/httpd.conf

5 常见错误

    [root@server ~]# systemctl  restart httpd
    Job for httpd.service failed because the control process exited with error code. See "systemctl status httpd.service" and "journalctl -xe" for details.
    [root@server ~]# journalctl   -xe         

6 DocumentRoot:网页文件根目录(/var/www/html)

虚拟机A

    [root@server ~]# mkdir   /var/www/myweb
    [root@server ~]# echo wo shi myweb > /var/www/myweb/index.html
    [root@server ~]# vim    /etc/httpd/conf/httpd.conf
    …….此处省略一万字
    DocumentRoot     "/var/www/myweb"
    …….此处省略一万字
    [root@server ~]# systemctl  restart  httpd    #重启服务
    [root@server ~]# curl   192.168.88.240
    wo shi myweb

7 针对存放网页文件的目录,访问控制规则会自动继承

假设访问规则如此设置:

/var/www #允许所有客户端进行访问

/var/www/abc/nsd/cbd #拒绝客户端

造成的结果:

/var/www/abc #允许所有客户端进行访问

/var/www/abc/nsd #允许所有客户端进行访问

/var/www/abc/nsd/cbd #拒绝客户端

/var/www/abc/nsd/cbd/xixi #拒绝客户端

/var/www/abc/nsd/cbd/xixi/haha #拒绝客户端

基于网页文件目录,进行访问控制

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

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

<Directory />

Require all denied #拒绝所有人访问

</Directory>

<Directory "/var/www">

Require all granted #允许所有人访问

</Directory>

总结:默认情况下网页文件,必须在/var/www目录下,才能允许访问

8 访问出现测试页面:

  1. 没有网页文件
  2. 网页文件名称不是index.html
  3. httpd的访问控制规则拒绝
  4. SELinux的没有关闭

虚拟机A:

    [root@server ~]# mkdir    /webroot
    [root@server ~]# echo  wo   shi   webroot    >   /webroot/index.html
    [root@server ~]# vim    /etc/httpd/conf/httpd.conf
    …….此处省略一万字
    DocumentRoot    "/webroot"  #修改原有配置
    <Directory     "/webroot"> #针对于/webroot路径
        Require  all  granted   #允许所有人访问
    </Directory>
    …….此处省略一万字
    [root@server ~]# systemctl    restart   httpd     #重启服务
    [root@server ~]# curl   192.168.88.240       
     wo shi webroot

9 网络路径与实际路径

客户端curl 192.168.88.240---》http协议---》服务端收到http协议的请求---》内存寻找进程---》httpd进程(监听状态)---》配置文件 DocumentRoot------》/webroot-----》index.html

客户端:浏览器 http://192.168.88.240 #网络路径

服务端: /webroot/index.html #实际路径

http://192.168.88.240 = /webroot

DocumentRoot ---》/webroot

网络路径:curl 192.168.88.240/webroot/abc/

实际路径: /webroot/webroot/abc/index.html

虚拟机A

    [root@server ~]# mkdir   /webroot/abc
    [root@server ~]# echo wo shi abc > /webroot/abc/index.html
    [root@server ~]# curl    192.168.88.240/abc/

10 调用配置文件的使用

?配置文件路径

–/etc/httpd/conf/httpd.conf #主配置文件

–/etc/httpd/conf.d/*.conf #调用配置文件

虚拟机A

    [root@server ~]# vim   /etc/httpd/conf.d/haha.conf
    DocumentRoot    /var/www/cbd
    [root@server ~]# mkdir   /var/www/cbd
    [root@server ~]# echo wo shi CBD  >  /var/www/cbd/index.html
    [root@server ~]# systemctl   restart    httpd
    [root@server ~]# curl   192.168.88.240

11 Listen:监听IP地址: 监听端口(80)

端口:数字编号起到标识作用,标识协议或者进程

http协议默认端口:80

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

虚拟机A

    [root@server ~]# vim  /etc/httpd/conf.d/haha.conf
    DocumentRoot    /var/www/cbd
    Listen  8000      #新增配置监听8000端口
    [root@server ~]# systemctl   restart   httpd
    [root@server ~]# curl  192.168.88.240:8000
    [root@server ~]# curl  192.168.88.240
    格式:
    [root@server ~]# curl  192.168.88.240:8000/xixi/

12 虚拟Web主机

?虚拟Web主机

–由同一台服务器,提供多个不同的Web站点

?区分方式(构建方式)

–基于域名的虚拟主机

–基于端口的虚拟主机

–基于IP地址的虚拟主机

?为每个虚拟站点添加配置

<VirtualHost IP地址:端口>

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

DocumentRoot 此站点的网页根目录

</VirtualHost>

虚拟机A:

[root@server ~]# vim /etc/httpd/conf.d/xixi.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>

[root@server ~]# mkdir /var/www/qq /var/www/lol

[root@server ~]# echo wo shi QQ > /var/www/qq/index.html

[root@server ~]# echo wo shi LOL > /var/www/lol/index.html

[root@server ~]# systemctl restart httpd

采用/etc/hosts文件直接解析域名,只为本机解析

    [root@server ~]# vim     /etc/hosts  
    …….此处省略一万字
    192.168.88.240   www.qq.com    www.lol.com
    [root@server ~]# curl   www.qq.com
    [root@server ~]# curl   www.lol.com

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

虚拟机A

    [root@server ~]# vim /etc/httpd/conf.d/haha.conf
    …….此处省略一万字
    <VirtualHost  *:80>
       ServerName    www.xixi.com
       DocumentRoot    /webroot
    </VirtualHost>
    [root@server ~]# systemctl restart httpd
    [root@server ~]# vim /etc/hosts
    …….此处省略一万字
    192.168.88.240   www.qq.com   www.lol.com   www.xixi.com
    [root@server ~]# curl  http://www.xixi.com

13 基于端口的虚拟Web主机(端口优先级最高匹配)

    [root@server ~]# 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>
    [root@server ~]# systemctl restart httpd
    [root@server ~]# curl  www.qq.com:8080
    [root@server ~]# curl  www.qq.com

14 NFS服务基础

?Network File System,网络文件系统

–用途:为客户机提供共享使用的文件夹

–协议:NFS( 2049)、RPC( 111)

?所需软件包:nfs-utils

?系统服务:nfs-server

虚拟机A:服务端

    [root@server ~]# rpm  -q  nfs-utils
    nfs-utils-1.3.0-0.54.el7.x86_64
    [root@server ~]# mkdir   /abc  #创建共享目录
    [root@server ~]# echo  haha  >  /abc/h.txt
    [root@server ~]# echo  xixi  >  /abc/x.txt
    [root@server ~]# ls  /abc/
    [root@server ~]# vim   /etc/exports
    文件夹路径      客户机地址(权限)  
    /abc       *(ro)       #允许所有客户端进行只读访问
    [root@server ~]# systemctl   restart   nfs-server

虚拟机B:客户端

    [root@pc2 ~]# rpm  -q  nfs-utils
    nfs-utils-1.3.0-0.54.el7.x86_64
    [root@pc2 ~]# showmount -e 192.168.88.240 #查看对方nfs共享
    Export list for 192.168.88.240:
    /abc   *
    [root@pc2 ~]# mkdir    /mnt/mynfs
    [root@pc2 ~]# mount    192.168.88.240:/abc    /mnt/mynfs
    [root@pc2 ~]# ls     /mnt/mynfs
    [root@pc2 ~]# df -h   /mnt/mynfs   #查看正在挂载的设备信息

15 实现NFS共享的开机自动挂载

虚拟机B:

_netdev:声明网络设备,系统在具备网络参数后,再进行挂载本设备

    [root@pc2 ~]# vim    /etc/fstab   
    ……此处省略一万字
    192.168.88.240:/abc   /mnt/mynfs    nfs     _netdev    0    0
    [root@pc2 ~]# umount   /mnt/mynfs
    [root@pc2 ~]# ls   /mnt/mynfs
    [root@pc2 ~]# mount   -a
    [root@pc2 ~]# ls   /mnt/mynfs

16 触发挂载(了解内容)

?由 autofs 服务提供的“按需访问”机制

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

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

    虚拟机B:
    [root@pc2 ~]# yum  -y  install  autofs
    [root@pc2 ~]# systemctl restart autofs
    [root@pc2 ~]# ls  /misc
    [root@pc2 ~]# ls  /misc/cd   

触发挂载实现

?主配置文件 /etc/auto.master

–监控点目录 挂载配置文件的路径

?挂载配置文件,比如 /etc/auto.misc

–触发点子目录 -挂载参数 :设备名

案例:虚拟机B访问/myauto/nsd,光驱设备挂载/ myauto/nsd

    [root@pc2 ~]# yum -y  install   autofs   
    [root@pc2 ~]# vim   /etc/auto.master
    ……此处省略一万字 
    /myauto      /opt/xixi.txt      
    ……此处省略一万字
    [root@pc2 ~]# vim  /opt/xixi.txt
    nsd    -fstype=iso9660     :/dev/cdrom
    [root@pc2 ~]# systemctl  restart   autofs
    [root@pc2  ~]# ls   /myauto/
    [root@pc2 ~]# ls   /myauto/nsd

17 触发挂载进阶autofs与NFS

虚拟机B访问/myauto/test,虚拟机A 的nfs共享/abc挂载到/myauto/test

    [root@pc2 ~]# yum  -y  install   autofs
    [root@pc2 ~]# vim   /etc/auto.master
    ……此处省略一万字 
    /myauto      /opt/xixi.txt    
    ……此处省略一万字                          
    [root@pc2 ~]# vim   /opt/xixi.txt
    nsd    -fstype=iso9660     :/dev/cdrom
    test    -fstype=nfs     192.168.88.240:/abc
    [root@pc2 ~]# systemctl  restart  autofs
    [root@pc2 ~]# ls  /myauto/test

18 远程管理默认使用端口22

ssh协议默认端口为22

虚拟机B:修改sshd服务监听的端口

    [root@pc2 ~]# vim   /etc/ssh/sshd_config
    Port   2244   #开头的#号去掉
    [root@pc2 ~]# systemctl   restart    sshd   #重启服务

虚拟机A:指定端口进行远程管理

    [root@server ~]# ssh  -p  2244   root@192.168.88.2

?

文章来源:https://blog.csdn.net/fmj121030/article/details/135615280
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。