当前位置: 首页 > news >正文

Docker--通过Docker容器创建一个Web服务器

Web服务器

Web服务器,一般指网站服务器,是驻留于因特网上某种类型计算机的程序

Web服务器可以向浏览器等Web客户端提供文档,也可以放置网站文件以供全世界浏览,或放置数据文件以供全世界下载。

Web服务器的主要功能是提供网上信息浏览服务,它使用HTTP(超文本传输协议)与客户机浏览器进行信息交流。

Web服务器是一种被动程序,只有当Internet上运行其他计算机中的浏览器发出请求时,服务器才会响应。

Web服务器不仅能够存储信息,还能在用户通过Web浏览器提供的信息的基础上运行脚本和程序。

工作原理

当Web浏览器(客户端)连到服务器上并请求文件时,服务器将处理该请求并将文件反馈到该浏览器上,附带的信息会告诉浏览器如何查看该文件(即文件类型)。为了处理一个请求,Web服务器可以响应一个静态页面或图片,进行页面跳转,或者把动态响应的产生委托给一些其他的程序,例如CGI脚本、JSP(JavaServer Pages)脚本、servlets、ASP(Active Server Pages)脚本、服务器端(server-side)JavaScript,或者一些其他的服务器端技术。

Nginx

Nginx是一个高性能的HTTP和反向代理服务器,同时也提供了IMAP/POP3/SMTP服务。

Nginx由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点开发,其将源代码以类BSD许可证的形式发布。Nginx因它的稳定性、丰富的功能集、简单的配置文件和低系统资源的消耗而闻名。
Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like协议下发行,特点是占有内存少、并发能力强,事实上Nginx的并发能力在同类型的网页服务器中表现较好。

  • HTTP服务器:Nginx可以作为静态网页和动态网页的容器,处理HTTP请求并返回响应。
  • 反向代理:Nginx可以将客户端的请求转发给内部网络上的其他服务器,同时保持客户端与服务器的通信。
  • 负载均衡:Nginx支持多种负载均衡策略,如轮询、加权轮询、IP哈希等,可以将请求分发到多个应用服务器上,提高系统的性能和可靠性。
  • 动静分离:为了加快网站的解析速度,Nginx可以通过配置实现动静分离,将静态页面请求直接转发给静态页面服务器,而将动态页面请求转发给应用服务器处理。

通过Docker创建一个Web服务器

对nginx网页界面进行测试

先检查nginx的安装环境:

ps -ef | grep nginx

查看原本系统上有没有nginx;
在这里插入图片描述
卸载nginx:

apt --purge autoremove nginx 

安装nginx:

apt install nginx -y

再次查看进程信息

ps -ef | grep nginx

在这里插入图片描述
查看进程是否允许;

查看nginx的配置:

cd /etc/nginx
ls

在这里插入图片描述
访问库文件:

ll /etc/nginx/sites-enabled/
vi /etc/nginx/sites-available/default

在这里插入图片描述
修改根目录:
在这里插入图片描述
加载配置:

nginx -s reload

访问80端口
在这里插入图片描述

查看网页内容信息:

cd /usr/share/nginx/html
ls

在这里插入图片描述

vi index.html

修改下标题内容:
在这里插入图片描述

docker容器部署Web服务器

先拉取一个nginx镜像:

docker pull nginx:1.24.0

在这里插入图片描述

查看有没有拉取成功
在这里插入图片描述
查看nginx镜像详情:

docker image inspect nginx:1.24.0

启动容器并在bash上运行:

docker run -p 8081:80 --name myweb3 -h myweb3.com -e myenv=test -it nginx:1.24.0 bash

进入html目录下,并对index.html目录开始修改:

cd /usr/share/nginx/ html/
ls

在这里插入图片描述

echo "Hello i am in docker my port is 8081" > index.html

在这里插入图片描述

通过浏览器访问:
在这里插入图片描述

http://www.lryc.cn/news/491278.html

相关文章:

  • Next.js-样式处理
  • 整合Springboot shiro jpa mysql 实现权限管理系统(附源码地址)
  • 极智嘉嵌入式面试题及参考答案
  • 【MySQL】数据库核心技术与应用指南
  • 23省赛区块链应用与维护(房屋租凭)
  • 深度学习4
  • 跳绳视觉计数方案
  • TEA加密逆向
  • LeetCode 404.左叶子之和
  • 01-go入门
  • 【经典】抽奖系统(HTML,CSS、JS)
  • GoF设计模式——结构型设计模式分析与应用
  • Java后端如何进行文件上传和下载 —— 本地版
  • json格式数据集转换成yolo的txt格式数据集
  • 什么是Three.js,有什么特点
  • Linux笔记--基于OCRmyPDF将扫描件PDF转换为可搜索的PDF
  • Unity 导出 Xcode 工程 修改 Podfile 文件
  • UE5 slate BlankProgram独立程序系列
  • 内存不足引发C++程序闪退崩溃问题的分析与总结
  • C++ —— 以真我之名 如飞花般绚丽 - 智能指针
  • Linux中安装InfluxDB
  • nginx服务器实现上传文件功能_使用nginx-upload-module模块
  • ORB-SLAM2源码学习:Initializer.cc:Initializer::ComputeF21地图初始化——计算基础矩阵
  • C# 读取多条数据记录导出到 Word标签模板之图片输出改造
  • NSSCTF web刷题
  • 对象排序得到方式
  • Day2 洛谷1035+1047+1085+1089+1150+1151
  • Linux:进程间通信之进程池和日志
  • 详细介绍HTTP与RPC:为什么有了HTTP,还需要RPC?
  • Paddle Inference部署推理(十二)