阅读量:0
系统&服务管理进阶
web基础应用
HTTP服务基础
独立web主机
web通信基本概念
基于B/S(Brower/Server)架构的网页服务
- 服务端提供网页 - 浏览器下载并显示网页
Hyper Text Markup Language , 超文本标记语言
Hyper Text Transfer Protocol, 超文本传输协议
Linux中的Web服务
软件包: httpd
系统服务: httpd
提供的默认配置:
-Listen: 监听地址:端口(80) -ServerName: 本站点注册的DNS名称(空缺) -DocumentRoot: 网页根目录(/var/www/html) -DirectoryIndex: 起始页/首页文件名(index.html)
独立web站点的快速部署
- 装包(httpd)
- 配置(部署首页 index.html)
- 起服务(httpd)实现Web功能软件:httpd、Nginx、Tomcat。这里使用httpd软件,由基金会Apache发布的
#虚拟机A:构建基本Web服务 #所有虚拟机设置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 #虚拟机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
常见错误:
[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
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
针对存放网页文件的目录,访问控制规则会自动继承
假设访问规则如此设置: /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目录下,才能允许访问
访问web站点
- 为浏览器程序提供URL网址
-Uniform Resource Locator, 统一资源定位器
-协议名://服务器地址[:端口号]/目录/文件名
访问出现测试页面:
- 没有网页文件
- 网页文件名称不是index.html
- httpd的访问控制规则拒绝
- 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
虚拟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
对默认web站点的影响
- 一旦启用虚拟Web主机以后
- 外部的DocumentRoot、ServerName会被忽略
- 第1个虚拟站点被视为默认站点,若客户机请求的URL不属于任何以至站点,则由第1个站点响应
NFS服务基础
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 #查看正在挂载的设备信息
exports配置文件解析
访问NFS共享文件夹
触发挂载
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
autofs配置解析
触发挂载进阶
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