nginx

Nginx 是一款面向性能设计的 HTTP 服务器,能反向代理 HTTP,HTTPS 和邮件相关(SMTP,POP3,IMAP)的协议链接。并且提供了负载均衡以及 HTTP 缓存。它的设计充分使用异步事件模型,削减上下文调度的开销,提高服务器并发能力。采用了模块化设计,提供了丰富模块的第三方模块。

所以关于 Nginx,有这些标签:「异步」「事件」「模块化」「高性能」「高并发」「反向代理」「负载均衡」

下面是 nginx 在 Docker 中的应用,这里还有 nginx入门教程 供你参考

查找镜像

在 docker hub 中查找 nginx 相关镜像。

$ docker search nginx

# INDEX       NAME                            DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
# docker.io   docker.io/nginx                 Official build of Nginx.                        7006      [OK]
# docker.io   docker.io/jwilder/nginx-proxy   Automated Nginx reverse proxy for docker c...   1137                 [OK]

下载镜像

拉取官方镜像,其中上面的非官方镜像是用户们根据自己的需要制作的镜像,方便大家的使用。

$ docker pull nginx
# Using default tag: latest
# Trying to pull repository docker.io/library/nginx ...
# latest: Pulling from docker.io/library/nginx
# bc95e04b23c0: Pull complete
# ...
# Digest: sha256:004ac1d5e791e705f12a1

启动容器

利用这个镜像启动一个新的容器

查看日志

查看容器运行日志

运行容器示例一

启动一个更复杂Nginx的例子:

-v 参数语法为 -v host dir:container dir[:ro|rw]

  • --name 为容器取一个名字

  • -p 参数语法为 -p host port:container port; -p 8080:80 将主机上的8080端口绑定到容器上的80端口,因此在主机中访问8080端口时其实就是访问 nginx 容器的80端口

  • -d 后台运行容器

运行容器示例二

新需求,nginx 容器需要加载 Let's Encrypt 提供的免费 SSL 证书,需要挂载证书目录,需要挂载一个静态资源目录。

运行容器,记住先将目录中的 /etc/nginx/conf.d/defautl.conf 文件复制出来,不然会报错。

  • --rm:容器停止运行后,自动删除容器文件

  • -d:在后台运行

  • -p 802:80:将容器的 80 端口映射到主机的 802 端口

  • --name webserver:将容器命名为 webserver

  • -v $HOME/docker/nginx/html:/usr/share/nginx/html:将主机中当前目录下的 html 挂载到容器的 /html

  • -v $HOME/docker/nginx/conf.d:/etc/nginx/conf.d:将主机中当前目录下的 nginx 配置,挂载到容器的 /etc/nginx/conf.d

  • -v $HOME/docker/nginx/logs:/wwwlogs:将主机中当前目录下的logs挂载到容器的/wwwlogs

默认挂载的路径权限为读写。如果指定为只读可以用:ro 重载 nginx 配置

注意:⚠️ webserver 可以是 容器名称 或者 容器ID

Last updated

Was this helpful?