LINUX从零开始——SERVICES(系统&服务管理进阶)——Day2 [Web基础应用、NFS服务基础、触发挂载]

一、环境准备
1.开启虚拟机A与虚拟机B,以root用户登录

二、离线访问虚拟机

[root@A ~]# virsh list --all

•基本用法
guestmount -a 虚拟机磁盘路径 -i /挂载点
[root@A ~]# yum -y install libguestfs-tools-c
[root@A ~]# guestmount -a /var/lib/libvirt/images/nsd01.qcow2 -i /mnt/
[root@A ~]# ls /mnt/
bin dev home lib64 mnt proc run srv tmp var
boot etc lib media opt root sbin sys usr

###############################################################
三、Web服务器

Web服务:提供一个网页内容

•基于 B/S (Browser/Server)架构的网页服务
–服务端提供网页
–浏览器下载并显示网页

•Hyper Text Transfer Protocol(http),超文本传输协议
•Hyper Text Markup Language(html),超文本标记语言

阳光明媚(计算机你帮我变大点)

常用语构建Web服务器的软件:httpd、nginx、tomcat
httpd----》Apache(软件基金会)

虚拟机A:
1.安装软件包httpd
[root@A ~]# yum -y install httpd
2.重启服务
[root@A ~]# systemctl restart httpd #重启服务
[root@A ~]# systemctl status httpd #查看服务当前的状态
[root@A ~]# systemctl enable httpd #设置服务开机自动启动
3.书写一个页面文件
[root@A ~]# echo ‘人在塔在,德玛西亚’ > /var/www/html/index.html
[root@A ~]# cat /var/www/html/index.html
[root@A ~]# curl 192.168.4.7 #测试本机访问
人在塔在,德玛西亚
[root@A ~]#

设置防火墙策略:
虚拟机A:
[root@A ~]# firewall-cmd --set-default-zone=trusted #修改默认的区域
[root@A ~]# firewall-cmd --get-default-zone #查看默认的区域

虚拟机B:
[root@B ~]# firewall-cmd --set-default-zone=trusted #修改默认的区域
[root@B ~]# firewall-cmd --get-default-zone #查看默认的区域
[root@B ~]# curl 192.168.4.7

•软件包:httpd
•系统服务:httpd
•提供的默认配置
–Listen:监听地址:端口(80)
–ServerName:本站点注册的DNS名称(空缺)
–DocumentRoot:网页根目录(/var/www/html)
–DirectoryIndex:起始页/首页文件名(index.html)

###############################################################
四、Web服务器,存放网页文件路径
–DocumentRoot:网页根目录(存放网页文件路径)(/var/www/html)
/etc/httpd/conf/httpd.conf(主配置文件)
虚拟机A
[root@A ~]# mkdir /var/www/nsd2002 #建立新的网页文件存放目录
[root@A ~]# echo ‘wo shi nsd2002’ > /var/www/nsd2002/index.html
[root@A ~]# cat /var/www/nsd2002/index.html
[root@A ~]# vim /etc/httpd/conf/httpd.conf
vim的命令模式下 /Doc 全文进行搜索
DocumentRoot “/var/www/nsd2002” #修改配置文件中网页文件存放目录

[root@A ~]# systemctl restart httpd #重启服务
虚拟机B:
[root@B ~]# curl 192.168.4.7

###############################################################
五、Web服务器,设置网站名称
–ServerName:本站点注册的DNS名称
完整的网站名称:主机头部信息+注册域名
www.qq.com

虚拟机A
1.修改主配置文件
[root@A ~]# vim /etc/httpd/conf/httpd.conf
vim的命令模式下 /ServerName 全文进行搜索
ServerName www.2002.com:80
[root@A ~]# systemctl restart httpd
[root@A ~]# vim /etc/hosts #只为本机提供解析
192.168.4.7 www.2002.com

`虚拟机B:
1.域名解析
[root@B ~]# vim /etc/hosts #只为本机提供解析
192.168.4.7 www.2002.com
[root@B ~]# curl www.2002.com
wo shi nsd2002
[root@B ~]# ping -c 2 www.2002.com

###############################################################
六、Web服务器,设置端口

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

端口:编号,标识协议或程序

达外理发店 地址:北京大街,38号 ----》IP地址
20位理发师 8号----》端口

数据包: 源IP地址 目标IP地址 数据 端口

常见协议的端口: http协议的默认端口 80

虚拟机B curl http://192.168.4.7:80 —> 192.168.4.7------>寻找编号80的程序 httpd程序监听80----》httpd程序

###############################################################
七、Web服务器,网络路径与实际路径

–DocumentRoot:网页文件的根目录,网页文件的起始点(存放网页文件路径)

虚拟机A:
[root@A ~]# grep ^DocumentRoot /etc/httpd/conf/httpd.conf
DocumentRoot “/var/www/nsd2002”
[root@A ~]# mkdir /var/www/nsd2002/abc
[root@A ~]# echo ‘wo shi abc’ > /var/www/nsd2002/abc/index.html
[root@A ~]# cat /var/www/nsd2002/abc/index.html
wo shi abc

虚拟机B
[root@B ~]# curl 192.168.4.7/abc/
wo shi abc
[root@B ~]#

当虚拟机B curl 192.168.4.7----》192.168.4.7-----》80-----》httpd----》DocumentRoot /var/www/nsd2002 ------》index.html 呈现

网络路径:curl 192.168.4.7
实际路径:/var/www/nsd2002

网络路径:curl 192.168.4.7/abc/
实际路径:/var/www/nsd2002/abc

网络路径:curl 192.168.4.7/var/www/nsd2002/abc
实际路径:/var/www/nsd2002/var/www/nsd2002/abc

虚拟机A
[root@A ~]# mkdir /var/www/nsd2002/abc/test
[root@A ~]# echo ‘wo shi test’ > /var/www/nsd2002/abc/test/index.html

虚拟机B
[root@B ~]# curl 192.168.4.7/abc/test/

###############################################################
八、虚拟Web主机

•虚拟Web主机
–由同一台服务器提供多个不同的Web站点

•区分方式
–基于域名的虚拟主机
–基于端口的虚拟主机
–基于IP地址的虚拟主机

•配置文件路径
–/etc/httpd/conf/httpd.conf #主配置文件
–/etc/httpd/conf.d/*.conf #调用配置

•为每个虚拟站点添加配置
<VirtualHost IP地址:端口>
ServerName 此站点的DNS名称
DocumentRoot 此站点的网页根目录

虚拟机A
[root@A ~]# vim /etc/httpd/conf.d/haha.conf #建立调用配置文件
<VirtualHost *:80> #在本机的所有地址都监听80端口
ServerName www.qq.com #设置网站名称
DocumentRoot /var/www/qq #设置网页文件存放路径

<VirtualHost *:80>
ServerName www.baidu.com
DocumentRoot /var/www/baidu

[root@A ~]# mkdir /var/www/qq /var/www/baidu #建立网页文件存放目录
[root@A ~]# echo ‘wo shi QQ’ > /var/www/qq/index.html
[root@A ~]# echo ‘wo shi baidu’ > /var/www/baidu/index.html
[root@A ~]# systemctl restart httpd #重启服务
虚拟机B
[root@B ~]# vim /etc/hosts #书写解析记录
192.168.4.7 www.2002.com www.qq.com www.baidu.com
[root@B ~]# curl www.qq.com
[root@B ~]# curl www.baidu.com

一旦使用的虚拟Web主机的功能,所有的网站必须利用虚拟Web主机的功能呈现

常见重启服务报错:
[root@A ~]# 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@A ~]# systemctl status httpd.service #可以通过此命令,进行查看报错信息,指引拍错的方向

虚拟机A
[root@A ~]# vim /etc/httpd/conf.d/haha.conf #建立调用配置文件
<VirtualHost *:80>
ServerName www.qq.com
DocumentRoot /var/www/qq

<VirtualHost *:80>
ServerName www.baidu.com
DocumentRoot /var/www/baidu

<VirtualHost *:80>
ServerName www.2002.com
DocumentRoot /var/www/nsd2002

[root@A ~]# systemctl restart httpd
虚拟机B
[root@B ~]# curl www.2002.com

###############################################################
九、Web服务器扩展配置(1)

httpd的Web服务,针对存放网页文件的目录,具备访问控制的配置
当子目录没有访问控制规则时,默认继承父目录的访问控制规则

<Directory 网页文件存放的目录>
访问控制规则

Require all denied #拒绝所有人访问

<Directory “/var/www”>
Require all granted #允许所有人访问

<Directory “/var/abc”>
Require ip 192.168.4.7 #仅允许192.168.4.7进行访问

<Directory “/var/www/abc”>
Require all denied #拒绝所有人访问

/var/www/abc/haha/index.html #拒绝所有人访问

虚拟机A:修改网页文件存放路径,前提:防火墙、SELinux
[root@A ~]# vim /etc/httpd/conf.d/haha.conf #修改配置文件内容
<VirtualHost *:80>
ServerName www.qq.com
DocumentRoot /myweb


[root@A ~]# mkdir /myweb
[root@A ~]# echo ‘wo shi myweb’ > /myweb/index.html
[root@A ~]# vim /etc/httpd/conf.d/xixi.conf #建立新的配置文件
<Directory /myweb> #针对/myweb目录进行访问控制
Require all granted #允许所有人进行访问

[root@A ~]# systemctl restart httpd
虚拟机B
[root@B ~]# curl www.qq.com
wo shi myweb
[root@B ~]#

虚拟机A:
[root@A ~]# mkdir /myweb/nsd01
[root@A ~]# echo ‘wo shi nsd01’ > /myweb/nsd01/index.html
[root@A ~]# vim /etc/httpd/conf.d/xixi.conf
<Directory /myweb>
Require all granted #允许所有人访问

<Directory /myweb/nsd01> #针对于/myweb/nsd01目录进行访问控制
Require ip 192.168.4.7 #仅允许192.168.4.7进行访问

[root@A ~]# vim /etc/hosts
192.168.4.7 www.2002.com www.qq.com

[root@A ~]# curl www.qq.com/nsd01/
wo shi nsd01
[root@A ~]# systemctl restart httpd

虚拟机B:
[root@B ~]# curl www.qq.com/nsd01/

403 Forbidden

Forbidden

You don't have permission to access /nsd01/ on this server.

[root@B ~]#

###############################################################
十、Web服务器扩展配置(2)

虚拟Web主机端口的修改

虚拟机A:前提:防火墙、SELinux
[root@A ~]# vim /etc/httpd/conf.d/haha.conf
<VirtualHost *:80>
ServerName www.qq.com
DocumentRoot /myweb

Listen 8000 #让httpd程序监听8000端口
<VirtualHost *:8000> #虚拟Web主机使用8000端口
ServerName www.baidu.com
DocumentRoot /var/www/baidu

<VirtualHost *:80>
ServerName www.2002.com
DocumentRoot /var/www/nsd2002

[root@A ~]# systemctl restart httpd

虚拟机B
[root@B ~]# curl www.baidu.com:8000
wo shi baidu
[root@B ~]#

###############################################################
十一、NFS共享目录服务

•Network File System,网络文件系统
–用途:为客户机提供共享使用的文件夹
–协议:NFS(TCP/UDP 2049)、RPC(TCP/UDP 111)
•所需软件包:nfs-utils
•系统服务:nfs-server

虚拟机A:前提:防火墙、SELinux
1.检测软件包是否安装
[root@A ~]# rpm -q nfs-utils
nfs-utils-1.3.0-0.54.el7.x86_64
2.创建目录,用于共享
[root@A ~]# mkdir /mynfs
[root@A ~]# cp /etc/passwd /etc/hosts /etc/fstab /mynfs
[root@A ~]# ls /mynfs
3.修改配置文件,参考 man exports 全文搜索/example
[root@A ~]# vim /etc/exports
/mynfs *(ro) #允许所有客户端以只读方式进行访问
格式:共享目录的路径 客户端地址(权限)
[root@A ~]# systemctl restart nfs-server #重启服务
[root@A ~]# systemctl status nfs-server #查看nfs-server服务的状态
[root@A ~]# systemctl status rpcbind #nfs-server服务需要rpcbind服务的支持

虚拟机B:进行访问
1.查看服务端共享的内容
[root@B ~]# showmount -e 192.168.4.7 #查看服务端共享内容
Export list for 192.168.4.7:
/mynfs *

2.进行挂载测试访问
[root@B ~]# mkdir /mnt/pub
[root@B ~]# mount 192.168.4.7:/mynfs /mnt/pub #进行挂载
[root@B ~]# ls /mnt/pub/
fstab hosts passwd
[root@B ~]#

3.开机自动挂载
_netdev:声明网络设置 当开机启动时,本设备为网络设备,需要具备网络参数后进行挂载

[root@B ~]# vim /etc/fstab
192.168.4.7:/mynfs /mnt/pub nfs defaults,_netdev 0 0

[root@B ~]# umount /mnt/pub/
[root@B ~]# df -h

[root@B ~]# mount -a #进行测试
[root@B ~]# df -h

###########################################################################################

课后习题:
案例1:为虚拟机A 配置以下虚拟Web主机

  • 实现三个网站的部署
  • 实现客户端访问server0.example.com网页内容为 大圣归来
  • 实现客户端访问www0.example.com网页内容为 大圣又归来
  • 实现客户端访问webapp0.example.com网页内容为 大圣累了

案例2:为虚拟机A 配置Web访问控制
在 Web 网站 http://server0.example.com 的 DocumentRoot 目录下创建一个名为 private 的子目录,要求如下:
1)在server0.example.com的DocumentRoot目录下,private的子目录里书写网页文件index.html内容为 大圣偷偷归来
2)此页面只能在本机浏览,但是从其他系统不能访问这个目录的内容

案例3:为虚拟机A 使用自定Web根目录
调整 Web 站点 http://www0.example.com 的网页目录,要求如下:
1)新建目录 /webroot,作为此站点新的网页目录
2)确保站点 http://www0.example.com 仍然可访问

案例4:为虚拟机A 部署站点
为站点 webapp0.example.com 进行配置,要求如下:
1)此虚拟主机侦听在端口8909
2)从浏览器访问 http://webapp0.example.com:8909

案例5:普通NFS共享的实现
1.在虚拟机A上配置NFS服务,只读的方式共享目录 /public
2.在虚拟机B上访问NFS共享目录
a)将虚拟机A 的 /public 挂到本地 /mnt/nfsmount
b)这些文件系统在系统启动时自动挂载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值