Web服务器简介
• 基于 B/S (Browser/Server)架构的网页服务
– 服务端提供网页
– 浏览器下载并显示网页
• Hyper Text Markup Language,超文本标记语言
• Hyper Text Transfer Protocol,超文本传输协议
三步骤策略:装包、配置、启服务
实现Web功能软件:httpd、Nginx、Tomcat
httpd由软件基金会Apache
]# yum -y install httpd #安装httpd软件]# rpm -q httpd #查询是否已安装]# echo NSD Web Server > /var/www/html/index.html #写测试页面]# systemctl restart httpd #重启服务]# curl http://192.168.88.240 #测试访问NSD Web Server
• 提供的默认配置
– Listen:监听地址:端口(80)
– ServerName:本站点注册的DNS名称(空缺)
– DocumentRoot:网页文件根目录(/var/www/html)
– DirectoryIndex:起始页/首页文件名(index.html)
主配置文件:/etc/httpd/conf/httpd.conf
常见错误:[root@server ~]# systemctl restart httpdJob 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
]# mkdir /var/www/myweb #创建web目录]# echo wo shi myweb > /var/www/myweb/index.html #写测试文件]# vim /etc/httpd/conf/httpd.conf #修改主配置文件…….此处省略一万字DocumentRoot "/var/www/myweb"…….此处省略一万字]# systemctl restart httpd #重启服务]# curl 192.168.88.240wo shi myweb
基于网页文件目录,进行访问控制
当子目录没有规则,默认继承上一级目录规则,针对此目录有单独配置,则不继承上一级目录规则/ 拒绝所有客户端访问/var/www 允许所有客户端访问/var/www/myweb #允许所有客户端访问/var #拒绝所有客户端访问/webroot #拒绝所有客户端访问<Directory/>Require all denied #拒绝所有人访问</Directory><Directory "/var/www">Require all granted #允许所有人访问</Directory>/webroot/abc/test #拒绝所有人访问/var/www/myweb #允许所有人访问总结:默认情况下网页文件必须在/var/www目录下才能允许访问例如:]# mkdir /webroot]# echo wo shi webroot > /webroot/index.html]# vim /etc/httpd/conf/httpd.conf…….此处省略一万字DocumentRoot "/webroot"<Directory "/webroot"> #针对于/webroot路径访问Require all granted #允许所有人访问</Directory>…….此处省略一万字]# systemctl restart httpd #重启服务]# curl 192.168.88.240wo shi webroot
客户端的浏览器 192.168.88.240—->http协议进行访问—->服务端192.168.88.240 接收http协议的请求—->httpd进程—->DocumentRoot /webroot—->/webroot/index.html
客户端 浏览器 192.168.88.240 #网络路径
服务端/webroot/index.html #实际路径
服务端是从DocumentRoot设置的路径作为起始点
浏览器 192.168.88.240=/webroot
客户端 浏览器 192.168.88.240/abc #网络路径
服务端/webroot/abc/index.html #实际路径
网络路径与实际路径
DocumentRoot —-》/webroot
网络路径:curl http://192.168.88.240
实际服务:/webroot
访问过程:客户端curl http://192.168.88.240--->服务端192.168.88.240---》80---》httpd------》/etc/httpd/conf/httpd.conf---》DocumentRoot —-》/webroot—-》index.html
网络路径:curl http://192.168.88.240/abc
实际服务:/webroot/abc/index.html
DocumentRoot —-》/webroot
网络路径:curl http://192.168.88.240/webroot/abc
实际服务:/webroot/webroot/abc/index.html
基于端口访问
Listen:监听IP地址: 监听端口(80)
端口:数字编号起到标识作用,标识协议或者进程
http协议默认端口:80
建议自定义端口时大于1024,端口的极限65535
[root@server ~]# vim /etc/httpd/conf/httpd.conf #修改主配置文件…….此处省略一万字Listen 80Listen 8000…….此处省略一万字
NFS服务基础
• Network File System,网络文件系统
– 用途:为客户机提供共享使用的文件夹
– 协议:NFS( 2049)、RPC( 111)
• 所需软件包:nfs-utils
• 系统服务:nfs-server
[root@server ~]# rpm -q nfs-utils #检测nfs软件包是否安装nfs-utils-1.3.0-0.54.el7.x86_64[root@server ~]# mkdir /public #创建共享目录[root@server ~]# echo haha > /public/h.txt[root@server ~]# echo xixi > /public/x.txt[root@server ~]# ls /public/[root@server ~]# vim /etc/exports文件夹路径 客户机地址(权限)/public *(ro) #允许所有客户端进行只读访问 *表示所有 (ro)表示只读访问 (rw)表示读写访问[root@server ~]# systemctl restart nfs-server #重启nfs服务虚拟机B:客户端[root@server ~]# rpm -q nfs-utilsnfs-utils-1.3.0-0.54.el7.x86_64[root@server ~]# showmount -e 192.168.88.240Export list for 192.168.88.240:/public *[root@server ~]# mkdir /mnt/mynfs[root@server ~]# mount 192.168.88.240:/public /mnt/mynfs[root@server ~]# ls /mnt/mynfs[root@server ~]# df -h /mnt/mynfs #查看正在挂载的设备信息实现开机自动挂载 _netdev:声明网络设备,系统在具备网络参数后,再进行挂载本设备[root@server ~]# vim /etc/fstab……此处省略一万字192.168.88.240:/public /mnt/mynfs nfs _netdev 0 0
触发挂载(了解内容)
• 由autofs 服务提供的“按需访问”机制
– 只要访问挂载点就会触发响应,自动挂载指定设备
– 闲置超过时限(默认5分钟)后,会自动卸载
触发挂载实现,必须多级的目录结构:/监控目录/挂载点目录
• 主配置文件/etc/auto.master
– 监控点目录 挂载配置文件的路径
• 挂载配置文件,比如/etc/auto.misc
– 触发点子目录 -挂载参数 :设备名
[root@pc2 ~]# vim /opt/xixi.txt #修改挂载设备nsd -fstype=iso9660 :/dev/cdrom[root@pc2 ~]# systemctl restart autofs #重启服务l 触发挂载进阶autofs与NFS虚拟机B访问/myauto/nfs,虚拟机A 的nfs共享/public挂载到/myauto/nfs[root@pc2 ~]# yum -y install autofs[root@pc2 ~]# vim /etc/auto.master……此处省略一万字/myauto /opt/xixi.txt……此处省略一万字[root@pc2 ~]# vim /opt/xixi.txtnsd -fstype=iso9660 :/dev/cdromabc -fstype=nfs 192.168.88.240:/public[root@pc2 ~]# systemctl restart autofs[root@pc2 ~]# ls /myauto/abc
scp命令-真机机传递数据到虚拟机
[root@server ~]# scp /linux-soft/1/tools.tar.gz root@192.168.88.240:/root #从本机传输文件到远程服务器[root@server ~]# scp -r /linux-soft/1/podman root@192.168.88.240:/root #从本机传输目录到远程服务器
