Docker 搭建 Nginx 反向代理环境

阅读时长 5 分钟读完

背景

随着互联网的快速发展,前端开发变得越来越重要,前端工程师承担了越来越多的工作。在前后端分离的架构中,前端的工作不再只是制作页面,还涉及到部署、优化等。其中,Nginx 反向代理是前端工程师必须掌握的重要技能之一。

然而,搭建 Nginx 反向代理环境需要配置复杂的参数,容易出错。而 Docker 的出现可以方便地搭建环境,并且避免了环境不一致的问题。本文将介绍如何通过 Docker 搭建 Nginx 反向代理环境,以及如何配置反向代理。

环境准备

在开始之前,需要先安装好 Docker 和 Docker Compose。

创建 Docker-compose 配置文件

我们需要创建一个 docker-compose.yml 文件来描述反向代理环境的组成。

-- -------------------- ---- -------
-------- ---
---------
  ------
    ------ -----
    --------
      - ----------------------------------------
      - --------------------------------
    ------
      - -------
    -----------
      - ---
  ----
    ------ ------
    ------------
      - -------------------------------
展开代码

这个文件描述了两个容器:

  1. nginx:使用官方的 Nginx 镜像,将配置文件挂载到容器内部 /etc/nginx 目录下,并将容器的 80 端口映射到主机的 80 端口。另外,指定了该容器依赖于 api 容器。
  2. api:使用我们自己的镜像,设置环境变量 VIRTUAL_HOSTmy-api.example.com,这个变量会被 Nginx 容器通过反向代理使用。

需要注意的是,VIRTUAL_HOST 变量是通过 jwilder/nginx-proxy 这个镜像来实现的,它可以自动感知容器的环境变量,从而配置相应的反向代理规则。

编写 Nginx 配置文件

nginx 目录下,创建 nginx.conf 文件,并写入以下内容:

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

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

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

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

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

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

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

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

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

    ------- -------------------------
-
展开代码

这个配置文件包含了基本的 Nginx 配置,其中要注意:

  1. worker_processes 参数为自动选择 CPU 核数作为 worker 进程数。
  2. events 块中的参数可以根据实际情况进行调整。

接着,在 nginx/conf.d 目录下,创建一个以 VIRTUAL_HOST 变量为名的 .conf 文件,例如 my-api.example.com.conf,并写入以下内容:

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

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

    -------- - -
        ---------- --------------
        ---------------- ---- ------
        ---------------- --------- -------------
        ---------------- ----------------- --------
    -
-
展开代码

这个配置文件指定了反向代理规则,将 my-api.example.com 反向代理到 api 容器的 8080 端口。

启动容器

在当前目录下,使用以下命令启动容器:

这个命令会自动创建两个容器,并根据 docker-compose.yml 文件中的描述进行配置,启动成功后,就可以访问 my-api.example.com 来验证反向代理是否生效了。

总结

通过 Docker 搭建 Nginx 反向代理环境,可以方便地配置和部署反向代理服务。在前端开发中,熟练掌握反向代理技术,能够有效地提高 Web 应用的性能和可用性,具有重要的实用和学习意义。

完整的示例代码可以在 GitHub 上找到。

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

纠错
反馈

纠错反馈