Docker 容器 Nginx 配置教程

阅读时长 5 分钟读完

介绍

在前端开发中,我们常常需要使用 Nginx 来部署静态文件、反向代理等。而使用 Docker 可以更简单地管理开发、测试和部署环境。本文将详细介绍如何在 Docker 中进行 Nginx 配置。

Docker 安装和使用

首先,我们需要在本地安装 Docker。具体安装方式可以参考 Docker 官方文档。安装完成后,我们可以通过以下命令测试 Docker 是否成功安装:

如果能看到 "Hello from Docker!" 的输出,说明 Docker 安装成功。

创建 Docker 容器

接下来,我们需要创建一个新的 Docker 容器。我们可以通过以下命令来创建一个 Debian 10 容器:

这行命令会启动一个交互式的容器,我们可以在其中运行命令和编辑文件等。在容器中安装 Nginx, 可以使用以下命令安装:

安装完成后,Nginx 就已经成功安装。接下来我们需要修改 Nginx 配置文件以便我们可以通过 Docker 容器进行访问。

Nginx 配置

Nginx 配置文件通常存储在 /etc/nginx/nginx.conf 文件中,在 Debian 系统中也不例外。

静态文件部署

首先,我们需要设置一个简单的 Nginx 配置来服务于 HTML 文件。我们需要更新 /etc/nginx/nginx.conf 文件如下:

-- -------------------- ---- -------
---- ---------
---------------- -----
--- ---------------
------ -
    ------------------ ----
    - ------------ ---
-

---- -

    -------- --- -
        ------ ---------------
    -

    ------ -
        ------ ---

        ---- --------------

        ----- -----------

        -------- - -
            --------- ---- ----- -----
        -
    -
-

解析以下配置文件:

  • user 指定 Nginx 的 worker 进程使用哪个用户运行。默认为 nginx,该用户在创建 Docker 容器时是不存在的,需要修改为已存在的用户,例如 www-data。
  • worker_processes 指定 Nginx 启动使用的 worker 进程数,我们可以设置为 auto 自动判断 CPU 核数。
  • pid 指定 Nginx 执行文件存放pid,比如在 Debian 上是 /run/nginx.pid
  • events 指定配置 Nginx 事件模型,包括 worker_connections 等。

修改完 Nginx 配置文件后,我们需要重新启动 Nginx 服务。我们可以通过以下命令来重启 Nginx:

现在,如果我们在本机的浏览器中访问 http://localhost,我们将在浏览器中看到一个 Nginx 页面,这预示着 Nginx 已经成功运行。

反向代理

下一步,让我们为我们的 Nginx 容器设置反向代理。我们可以使用以下配置文件来设置反向代理:

-- -------------------- ---- -------
-------- --- -
    ------ ---------------
-

------ -
    ------ ---
    ----------- ----------

    -------- - -
        ---------- -----------
        ---------------- ---- ------
        ---------------- --------- -------------
        ---------------- --------------- ---------------------------        
    -
-

这个配置文件做了以下工作:

  • 指定后端服务器,app做了反向代理指向 localhost:3000,如果要指向真实 IP 地址,可以替换该指令为真实地址。
  • 指定监听端口,这里是 80 端口。
  • 设置代理传值,这里将客户端的请求头信息都传递到后端服务器,包括实际 IP 地址和跨进程的头部字段。

修改完 Nginx 配置文件后,我们需要重新启动 Nginx 服务。我们可以通过以下命令来重启 Nginx:

现在,如果我们在本机的浏览器中访问 http://localhost,我们将会向代理服务器所请求的的 web 服务器索取页面。

结论

本文介绍了如何在 Docker 容器中配置 Nginx。我们了解了如何安装 Docker,并创建了一个 Debian 10 容器。我们还详细介绍了如何设置静态文件服务器和反向代理服务器。我们希望这个指南能够使您更好地理解如何在 Docker 容器上配置 Nginx。

参考链接

  1. Docker 官方文档: https://docs.docker.com/
  2. Nginx 官方文档: https://nginx.org/en/docs/

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/66f79498c5c563ced5a42e56

纠错
反馈