为什么选择做汉服网站,广州的一起做网店app下载,河南省两学一做网站,做网站如何设计数据库文章目录 搭建一个nginx服务认识nginx服务Web服务器反向代理服务器高性能特点 安装nginx启动nginx停止nginx查找nginx镜像拉取nginx镜像#xff0c;启动nginx站点其他方式拉取nginx镜像信息通过 DIGEST 拉取镜像 搭建一个nginx服务
首先先认识一下nginx服务#xff1a;
NGI… 文章目录 搭建一个nginx服务认识nginx服务Web服务器反向代理服务器高性能特点 安装nginx启动nginx停止nginx查找nginx镜像拉取nginx镜像启动nginx站点其他方式拉取nginx镜像信息通过 DIGEST 拉取镜像 搭建一个nginx服务
首先先认识一下nginx服务
NGINX是一款高性能的Web服务器和反向代理服务器软件同时也可用作邮件代理服务器。它最初由俄罗斯程序员Igor Sysoev开发以其高并发处理能力、低内存消耗和出色的性能优化而闻名。
认识nginx服务
Web服务器
作为Web服务器NGINX负责处理来自客户端如浏览器的HTTP请求将这些请求映射到服务器上的文件或其他资源然后返回HTTP响应给客户端。这个过程中NGINX可以处理静态内容如HTML、CSS、JavaScript文件等直接返回给用户。对于动态内容比如PHP脚本或Python应用生成的内容NGINX通常会将请求转发给后端的应用服务器如PHP-FPM或uWSGI来处理然后再将后端的响应返回给客户端。 反向代理服务器
作为反向代理服务器NGINX接收客户端的请求并将其转发给内部网络中的一个或多个服务器。这个过程对客户端是透明的客户端不知道实际处理请求的是哪个后端服务器。这种配置有助于负载均衡即通过分散请求到多个服务器来提高网站的可用性和扩展性。此外反向代理还可以用于SSL/TLS加密卸载、缓存内容、安全防护如DDoS攻击防护等功能。
高性能特点
事件驱动模型与传统的每个连接/请求一个线程的模型不同NGINX使用了异步事件驱动架构这意味着它可以同时处理大量连接而无需为每个连接创建单独的线程或进程从而大大提高了效率和可伸缩性。高并发能力设计上特别适合处理高并发连接尤其在处理静态内容和作为代理服务器时表现优异。低资源消耗由于其高效的架构NGINX可以在有限的硬件资源下服务更多的客户端连接降低了运行成本。
总之NGINX是一个强大且灵活的工具广泛应用于现代互联网架构中无论是简单的静态网站托管还是复杂的分布式系统部署都能见到它的身影。
如上所示是nginx服务的基本介绍那么下面就借助Docker完成nginx服务
安装nginx
apt install nginx -y启动nginx
使用
nginx就能启动nginx此时访问一下nginx 当看到这个界面就说明nginx已经启动成功了
停止nginx
使用kill命令就可以把进程停止
查找nginx镜像
docker search nginx拉取nginx镜像启动nginx站点
rootVM-24-7-ubuntu:~# docker pull nginx:1.23.3
1.23.3: Pulling from library/nginx
f1f26f570256: Pull complete
84181e80d10e: Pull complete
1ff0f94a8007: Pull complete
d776269cad10: Pull complete
e9427fcfa864: Pull complete
d4ceccbfc269: Pull complete
Digest: sha256:f4e3b6489888647ce1834b601c6c06b9f8c03dee6e097e13ed3e28c01ea3ac8c
Status: Downloaded newer image for nginx:1.23.3
docker.io/library/nginx:1.23.3此时本地就会有nginx的镜像信息
rootVM-24-7-ubuntu:~# docker images;
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 4f67c83422ec 9 days ago 188MB
hello-world latest d2c94e258dcb 13 months ago 13.3kB
myregistry.com/myhelloworld latest d2c94e258dcb 13 months ago 13.3kB
nginx 1.23.3 ac232364af84 14 months ago 142MB接着运行镜像
docker run --name nginx1 --rm -it -p 80:80 nginx:1.23.3 bash运行镜像之后此时就会进入到容器中进行运行比如 此时我们检查一下操作系统的版本
root47a7ad5b7c9f:/# cat /etc/*release*
PRETTY_NAMEDebian GNU/Linux 11 (bullseye)
NAMEDebian GNU/Linux
VERSION_ID11
VERSION11 (bullseye)
VERSION_CODENAMEbullseye
IDdebian
HOME_URLhttps://www.debian.org/
SUPPORT_URLhttps://www.debian.org/support
BUG_REPORT_URLhttps://bugs.debian.org/就会发现此时的版本不是Ubuntu我们再开一个新的shell看一下当前版本的操作系统
testVM-24-7-ubuntu:~$ cat /etc/*release*
DISTRIB_IDUbuntu
DISTRIB_RELEASE22.04
DISTRIB_CODENAMEjammy
DISTRIB_DESCRIPTIONUbuntu 22.04.4 LTS
PRETTY_NAMEUbuntu 22.04.4 LTS
NAMEUbuntu
VERSION_ID22.04
VERSION22.04.4 LTS (Jammy Jellyfish)
VERSION_CODENAMEjammy
IDubuntu
ID_LIKEdebian
HOME_URLhttps://www.ubuntu.com/
SUPPORT_URLhttps://help.ubuntu.com/
BUG_REPORT_URLhttps://bugs.launchpad.net/ubuntu/
PRIVACY_POLICY_URLhttps://www.ubuntu.com/legal/terms-and-policies/privacy-policy
UBUNTU_CODENAMEjammy这才是本地shell说明我们的Docker服务已经运行成功了此时已经进入到了容器的shell当中
我们在容器shell中启动nginx服务
root47a7ad5b7c9f:/# nginx
2024/06/08 03:23:53 [notice] 9#9: using the epoll event method
2024/06/08 03:23:53 [notice] 9#9: nginx/1.23.3
2024/06/08 03:23:53 [notice] 9#9: built by gcc 10.2.1 20210110 (Debian 10.2.1-6)
2024/06/08 03:23:53 [notice] 9#9: OS: Linux 5.15.0-106-generic
2024/06/08 03:23:53 [notice] 9#9: getrlimit(RLIMIT_NOFILE): 1048576:1048576
2024/06/08 03:23:53 [notice] 10#10: start worker processes
2024/06/08 03:23:53 [notice] 10#10: start worker process 11
2024/06/08 03:23:53 [notice] 10#10: start worker process 12然后我们从另外一个shell中去查看当前ip的80端口的信息
testVM-24-7-ubuntu:~$ curl 127.0.0.1
!DOCTYPE html
html
head
titleWelcome to nginx!/title
style
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
/style
/head
body
h1Welcome to nginx!/h1
pIf you see this page, the nginx web server is successfully installed and
working. Further configuration is required./ppFor online documentation and support please refer to
a hrefhttp://nginx.org/nginx.org/a.br/
Commercial support is available at
a hrefhttp://nginx.com/nginx.com/a./ppemThank you for using nginx./em/p
/body
/html此时就会发现当前的服务上已经部署成功了使用网页进行访问也是如此并且还和前面的网页不一样更说明了这是在容器中运行的 断开服务再进行访问就会发现异样
testVM-24-7-ubuntu:~/wechat$ curl 127.0.0.1
curl: (7) Failed to connect to 127.0.0.1 port 80 after 0 ms: Connection refused其他方式拉取nginx镜像信息
拉取某个组织或者用户定制的镜像
docker pull xxx/nginx:1.23.4通过 DIGEST 拉取镜像
首先要明确一个概念为什么要有DIGEST它和版本号有什么区别
DIGEST 不仅仅是版本号那么简单它是对镜像内容的直接反映。想象一下即使两个 app 版本号相同但如果编译时所依赖的库文件或代码有细微差异它们的实际二进制内容就会不同。DIGEST 就像是对这个最终打包产物的“指纹”哪怕是最微小的改动都会导致 DIGEST 发生变化。
所以通过 DIGEST 拉取镜像不仅仅是在选择不同的“版本号”而是确保你获取到的镜像与你期望的镜像内容完全一致哪怕是同一个标签下的镜像有了更新也不例外。
所以我们尝试拉取一个DIGEST rootVM-24-7-ubuntu:~# docker pull nginxsha256:d7573e9b475c64dbf09dac0808517e8d5a919918aa772ceca381091365a970aa
docker.io/library/nginxsha256:d7573e9b475c64dbf09dac0808517e8d5a919918aa772ceca381091365a970aa: Pulling from library/nginx
3f9582a2cbe7: Pull complete
1c3cdc1adeef: Pull complete
0d20c7b11e51: Pull complete
2f98bdf28b77: Pull complete
90f8f705fe4d: Pull complete
66350be01a8b: Pull complete
Digest: sha256:d7573e9b475c64dbf09dac0808517e8d5a919918aa772ceca381091365a970aa
Status: Downloaded newer image for nginxsha256:d7573e9b475c64dbf09dac0808517e8d5a919918aa772ceca381091365a970aa
docker.io/library/nginxsha256:d7573e9b475c64dbf09dac0808517e8d5a919918aa772ceca381091365a970aa此时查看本地镜像
rootVM-24-7-ubuntu:~# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 4f67c83422ec 9 days ago 188MB
hello-world latest d2c94e258dcb 13 months ago 13.3kB
myregistry.com/myhelloworld latest d2c94e258dcb 13 months ago 13.3kB
nginx 1.23.3 ac232364af84 14 months ago 142MB
nginx none 8c9eabeac475 15 months ago 142MB就会有不同版本的nginx了