RHCE篇 httpd服务

1.访问网站方法概念

有人互联网上设置了一台服务器,提供了服务,并监听一个包含端口的地址,用户就可以通过该监听的主机ip地址和端口进行访问

即通过ip+port 来进行访问,也叫套接字(socket)访问

而ip地址难以记述,为了方便人们记忆,主机名就出现了,也就是所谓的网址,例如“www.baidu.com”,主机名一定对应着一个地址,所以网址访问实际上也是ip+port的访问形式。


我们可以通过网络上的主机名查询ip网站或工具来查看主机名对应的ip地址,这里我用xshell来查看对应的ip
在这里插入图片描述14.215.177.39就是百度对应的ip地址,可以用它访问百度
在这里插入图片描述

这里访问百度访问的是80端口,浏览器默认访问对方的web服务,web服务的默认端口为80.

而还有一种常用的服务https (web加密服务)的端口号为443,许多应用程序喜欢使用此端口

每一个ip可以有不同的端口,1-65535个序号,其中又是 udp和 tcp两种端口,通过ip可以找到主机,通过端口可以找到主机中对应的服务

2.web服务工作流程

在浏览器搜索栏我们输入了一个网址(主机名),为了找到对应的ip,我们会用到一个服务

dns :domain name server 的缩写

它提供主机名到ip地址的翻译服务,叫dns正向解析服务,也提供ip地址到主机名的翻译服务,叫dns反向解析服务。

在浏览器输入一个网址时

1、浏览器需要查询dns缓存,确定该主机名是否已经翻译成ip地址

2、如果有缓存ip地址,那么直接使用,如果没有,则发送dns查询去dns服务器,进行查询ip地址
(在网卡属性的详细信息里面可以看到dns服务器)

在这里插入图片描述

如上图所示我的电脑的dns服务器就是192.168.43.1 ,它向我电脑提供主机名到ip地址的解析服务。

3、使用查找到的ip地址进行访问,会话层的端口收到报文,解封装,应用层报文发给指定的应用程序

4、应用层会话

当然这只是最简单web流程,期间tcp 3次握手 4次 断开 交换 路由 arp识别 rarp stp ospf 帧封装灯都没提。

3.web服务

c/s 架构: clinet/server 的缩写,通过浏览器或其它设备 与 服务器 生成响应的过程

b/s 架构: broswer/server的缩写,特指通过浏览器与服务器生成响应的过程

3.1.服务端

linux web工具
两种软件:
1.apache 写的.httpd
2. 俄罗斯Nginx 公司写的 nginx

3种应用程序服务器:
Tomcat 、WebSphere、 IIS
Tocat使用较另外两种更多

3.2.客户端

edge Chrome sofari IE 火狐 这些都是

4.httpd实现web服务器

既然学httpd就不得不提一下它的创立者Apache
www.apache.org 可以访问阿帕奇组织官网

4.1.安装httpd服务

dnf install httpd -y

在这里插入图片描述

4.3.修改配置文件

用vim编辑/etc/httpd/conf/httpd.conf,将ServerName设定为0.0.0.0:80

在这里插入图片描述

4.3.重启httpd服务

systemctl restart httpd
netstat -lntup | grep httpd

在这里插入图片描述
上图可见监听端口号为80,同样可以修改/etc/httpd/conf配置文件中Listen 来修改监听端口
在这里插入图片描述

4.4.在防火墙中放行http服务

firewall-cmd --permanent --add-service=http
firewall-cmd --reload  重载

在这里插入图片描述
到此我们已经可以在网络中访问自己了,在浏览器中使用ip 地址进入web服务界面
在这里插入图片描述

4.5.自定义web页面

web界面保存在/var/www/html/中

编辑其下的index.html实现编辑web页面

例如
cd /var/www/html/
echo welcome to rhce > index.html

在这里插入图片描述

### Docker 容器创建失败的原因分析 Docker 容器启动过程中遇到 `OCI runtime create failed` 和 `runc create failed` 错误通常表明底层运行时环境存在问题。以下是可能的原因及其解决方案: #### 1. NVIDIA GPU 驱动配置不正确 如果正在尝试通过 Docker 使用 GPU,则可能是由于 NVIDIA GPU 驱动程序未正确安装或配置引起的。错误消息中的 `Auto-detected mode as 'legacy'` 表明系统检测到旧版驱动模式,而现代应用更倾向于使用 Tegra 或其他更新的驱动支持方式[^1]。 - **解决方法**: 确认主机已安装最新版本的 NVIDIA 驱动,并验证其兼容性。可以执行以下命令来检查当前驱动状态: ```bash nvidia-smi ``` 如果该命令无法正常工作或者显示过期驱动版本,请重新安装最新的 NVIDIA 驱动并重启系统。 #### 2. 文件路径冲突 错误日志提到 `/var/lib/docker/overlay2/.../libnvidia-ml.so.1: file exists` 的文件冲突问题。这通常是由于多个进程试图访问同一共享库造成的。 - **解决方法**: 清理 Docker 存储层以移除潜在损坏的数据目录: ```bash docker system prune -a --volumes ``` 此外,确认是否有重复挂载相同的 GPU 库至容器内部的情况发生。调整 Dockerfile 中的相关指令避免冗余声明。 #### 3. 超时初始化 (Initialization Timeout) 部分情况下,NVIDIA 容器工具链未能及时完成初始化操作也会触发此类异常。具体表现为 `driver rpc error: timed out` 提示超出了允许的时间范围[^2]。 - **解决方法**: 增加等待时间参数以便给予更多缓冲机会让硬件资源准备就绪。编辑 `/etc/nvidia-container-runtime.conf` 添加适当的延时期限设置项;或者直接升级整个 NVIDIA-Docker 工具集获取性能改进后的版本。 --- ### 示例修复脚本 下面提供一段用于排查及初步解决问题的小型 Shell 脚本供参考: ```bash #!/bin/bash echo "Checking NVIDIA Driver..." if ! command -v nvidia-smi &> /dev/null; then echo "[ERROR] No valid NVIDIA driver detected." else echo "[INFO] Current NVIDIA driver version:" nvidia-smi | head -n 3 echo "Pruning old Docker data..." docker system prune -f --volumes echo "Restarting Docker service..." systemctl restart docker.service || { echo "[ERROR] Failed to restart Docker."; exit 1;} fi echo "Attempting new container launch with updated settings..." docker run --rm --gpus all nvidia/cuda:11.0-base nvidia-smi && \ echo "[SUCCESS] Container successfully launched." || \ { echo "[FAIL] Please check logs above and retry after fixing issues."; } ``` --- ### 总结 综上所述,针对所描述的现象需重点核查以下几个方面:GPU 驱动适配情况、目标文件系统的健康状况以及网络延迟影响下的服务响应效率等问题。采取相应措施逐一排除干扰因素直至恢复正常运作为止。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值