百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

使用Debian、Docker和Nginx部署Web应用教程

cac55 2024-10-17 07:56 18 浏览 0 评论

在 Debian 系统上使用 Docker 和 Nginx 部署 Web 应用是一种高效的解决方案,结合 Docker 的轻量级容器化功能与 Nginx 的强大反向代理与负载均衡能力,能够轻松实现 Web 应用的高效部署。下面我们将详细讲解每一步的部署过程,并对每个命令进行解释。

1. 安装 Docker

首先,在 Debian 上安装 Docker。Docker 是一种应用容器引擎,能够将应用及其依赖打包在容器中,实现跨平台的一致运行环境。

步骤

  1. 更新系统包列表,确保获取最新的软件包信息:
apt-get update
  1. 安装必需的包,以便让 APT 能够通过 HTTPS 获取仓库:
apt-get install -y apt-transport-https ca-certificates curl gnupg lsb-release
  1. 添加 Docker 的官方 GPG 密钥,以便验证 Docker 包的合法性:
curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
  1. 将 Docker 的 APT 软件源添加到系统的源列表中:
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
  1. 更新包列表,并安装 Docker:
apt-get update
apt-get install -y docker-ce docker-ce-cli containerd.io

通过上述步骤,您已经成功在 Debian 上安装了 Docker。Docker 使得部署应用变得更加轻量和高效。

2. 安装 Nginx

Nginx 是一款高效的 HTTP 和反向代理服务器,常用于负载均衡和静态内容的处理。使用 Docker 构建的 Web 应用通常会通过 Nginx 进行代理和负载均衡。

步骤

  1. 运行以下命令以安装 Nginx:
apt-get install -y nginx

此命令会从 Debian 的 APT 源中下载并安装 Nginx,同时会自动启动 Nginx 服务。您可以通过浏览器访问服务器的 IP 地址,确认 Nginx 是否已正确安装并运行。

3. 编写 Dockerfile

接下来,我们需要在 Web 应用根目录下创建 Dockerfile。该文件是用来定义如何将应用程序构建为一个 Docker 镜像。

示例 Dockerfile

FROM nginx:latest
COPY . /usr/share/nginx/html

解释

  • FROM nginx:latest:此命令表示构建镜像时将基于最新版本的 Nginx 官方镜像。
  • COPY . /usr/share/nginx/html:将当前目录下的 Web 应用文件复制到 Nginx 的默认 Web 目录 /usr/share/nginx/html。这意味着,当 Docker 容器启动时,Nginx 将自动托管该 Web 应用。

4. 构建和运行 Docker 容器

在 Web 应用的根目录下,运行以下命令来构建并运行 Docker 容器:

  1. 构建 Docker 镜像:
docker build -t mywebapp .

解释:docker build 命令会根据 Dockerfile 的内容创建一个名为 mywebapp 的镜像。镜像是应用的打包版本,包含了所有应用所需的依赖和文件。

  1. 运行 Docker 容器:
docker run -d -p 80:80 mywebapp

解释

  • -d:在后台运行容器(即以守护进程模式运行)。
  • -p 80:80:将主机的 80 端口映射到容器的 80 端口。这样,主机的 80 端口的请求会转发到容器中的 Nginx 上。
  • mywebapp:表示要运行的镜像名称。

通过这两步操作,Web 应用已经通过 Docker 运行在 Nginx 中,并且可以通过服务器的 IP 地址直接访问。

5. 配置 Nginx 反向代理

Nginx 可以配置为反向代理,将来自客户端的请求转发到运行在 Docker 容器中的 Web 应用。我们需要修改 Nginx 配置文件来实现这一点。

步骤

  1. 打开 Nginx 配置文件:
nano /etc/nginx/nginx.conf
  1. 在 http 块中添加如下 server 配置:
server {
    listen 80;
    server_name your_domain;

    location / {
        proxy_pass http://localhost:80;  # 将请求代理到Docker容器
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

解释

  • listen 80:指示 Nginx 监听 80 端口。
  • server_name your_domain:将 your_domain 替换为实际的域名或服务器 IP 地址。
  • proxy_pass http://localhost:80:Nginx 会将所有请求代理到本地的 80 端口,也就是 Docker 容器中运行的 Nginx 实例。
  • proxy_set_header:这些指令用于将客户端的真实 IP 地址、主机名等信息传递给后端应用。

6. 重新加载 Nginx 配置

每次修改 Nginx 配置后,都需要重新加载 Nginx 服务以应用更改。

步骤

  1. 运行以下命令以重新加载 Nginx:
systemctl reload nginx

此命令会使得 Nginx 重新读取配置文件,而无需中断正在进行的连接。

总结

以上是使用 Docker 和 Nginx 在 Debian 系统上部署 Web 应用的详细步骤。通过 Docker 的容器化技术和 Nginx 的反向代理功能,可以轻松实现 Web 应用的部署与负载均衡。

表:各步骤原理与作用

步骤

作用

原理解释

安装 Docker

为系统引入容器化技术,用于轻量级应用部署和管理

Docker 提供了一个隔离的运行环境,使得应用与依赖可以独立于系统运行

安装 Nginx

用于处理 HTTP 请求,提供反向代理、负载均衡等服务

Nginx 是一款高性能的 HTTP 服务器,常用于处理静态文件和反向代理

编写 Dockerfile

定义如何将 Web 应用打包成 Docker 镜像,以便容器化部署

Dockerfile 是 Docker 镜像的构建脚本,指定基础镜像和应用文件

构建 Docker 镜像

将 Web 应用及其依赖打包为 Docker 镜像,便于移植和运行

docker build 命令基于 Dockerfile 构建镜像

运行 Docker 容器

启动容器,将应用运行在隔离的环境中,并通过端口映射实现外部访问

容器是基于镜像创建的轻量虚拟机,独立运行且与系统资源隔离

配置 Nginx

配置反向代理功能,将请求转发到 Docker 容器中的应用

反向代理用于将客户端请求转发给后端服务器,并保持应用服务的安全性

重新加载 Nginx 配置

应用 Nginx 配置更改,无需中断现有连接

systemctl reload 命令会平滑地重新加载配置文件

通过这些步骤,您可以在 Debian 上使用 Docker 和 Nginx 部署高效且稳定的 Web 应用。

相关推荐

苹果新macOS、新Mac还没出,但已经有新版虚拟机软件Parallels Desktop 19

自从苹果电脑全面转向ARM架构芯片之后,想在新款Mac电脑上安装Windows或Linux系统,就只能依靠虚拟机软件了,其中ParallelsDesktop应该是比较多Mac用户选择使用的一款,现在...

这个开源神器可快速帮你安装 MacOS 虚拟机

大家好,我是JackTian。安装Windows和Linux操作系统是最熟悉不过的必备技能了。那么,给大家推荐一个非常实用的开源脚本:macos-guest-virtualbox.sh,帮你...

如何在VMware虚拟机上安装运行Mac OS系统??

想在自己的Windows电脑上安装一个MacOS体验一下苹果系统的小伙伴,教程来了!!!一、安装前准备虚拟机运行软件:VMwareWorkstationPro,版本:16.0.0。(可以注册)VM...

效率!MacOS下超级好用的Linux虚拟工具:Lima

对于MacOS用户来说,搭建Linux虚拟环境一直是件让人头疼的事。无论是VirtualBox还是商业的VMware,都显得过于笨重且配置复杂。今天,我们要介绍一个轻巧方便的纯命令行Linux虚拟工具...

普通电脑安装苹果MacOS+Windows10双系统,这次可不是虚拟机

上篇文章中说到,有一朋友因为工作需要,得临时使用苹果系统,笔者给他用VmwareWorkStation安装了一个苹果系统的虚拟机,结果装是装上了,但是发现调整分辨率有点小问题,文件传输也不方便。虽说...

官方证实苹果M1芯片不支持Windows 11

中关村在线消息:近日根据微软官方透露,目前已经确定Windows11不支持运行在苹果M1芯片上,这意味着过往在Mac电脑上安装Windows系统的做法在M1芯片的Mac电脑上并不适用。不过此前有网友...

这可能是 Mac 共享文件最详细的教程了

如果希望让一台Mac访问另一台Mac上的文件,就可以使用Mac的文件共享功能。而且不仅是Mac之间,甚至用iPhone、iPad、WindowsPC都可以访问Mac的共享文件...

在 M1/M2 Mac 上,让 Windows 11 免费“跑”起来

自从苹果在产品中逐步使用自研的M系列芯片淘汰掉英特尔芯片之后,很多事情都发生了改变。作者|KirkMcElhearn和JoshuaLong译者|弯月出品|CSDN(ID:CS...

VMware Workstation克隆虚拟机后修改ip地址和mac地址

VMwareWorkstation克隆虚拟机,登录之后发现,克隆虚拟机不仅用户名相同,连ip地址、mac地址也是相同的,很显然访问相同ip地址的虚拟机是会出现ip地址冲突的。一、修改IP地址这就需要...

VirtualBox7中安装macOS big sur,在windows10&11上「保姆级教程」

macOSBigSur是苹果公司研发的桌面端操作系统,于北京时间2020年6月23日在2020苹果全球开发者大会上发布。BigSur采用全新的精美设计,为主要app如Safari浏览器...

最强mac虚拟机Parallels Desktop 16 有哪些重要的新增功能?

ParallelsDesktop16正式发布,软件带来了一些显着的新功能和性能增强,包括对macOSBigSur的全面支持。当苹果推出macOSBigSur时,它终止了对Par...

关于在MacOS安装虚拟机的全过程(macos 安装虚拟机)

哈喽大家好,我是咕噜美乐蒂,很高兴又见面啦!下面美乐蒂将详细地给大家介绍一下在macOS上使用VMwareFusion创建虚拟机并安装操作系统的步骤:一、确认虚拟化支持:首先,确认你的Ma...

macOS上也能轻松运行Win系统的虚拟机,你还不知道吗?

在macOS系统上运行Win系统的方式,虚拟机篇吉安光头强原创你是否曾经为了在Mac上运行Windows系统而烦恼不用着急,下面我将分享一种简单易行的方法,让你轻松在Mac上运行Windows系统准备...

Mac M芯片上安装统信UOS 1070arm64虚拟机

原文链接:MacM芯片上安装统信UOS1070arm64虚拟机Hello,大家好啊!今天给大家带来一篇关于如何在苹果M系列芯片的Mac电脑上,通过VMware安装ARM64版统信UOS1070...

虚拟机不好用?Mac mini 多配一台Windows电脑,用远程桌面更好!

最近新入手了MacminiM4款,这里来更新一下相关问题,对于还没有购买Macmini,但是又想要用苹果电脑的朋友,一些参考,我觉得还是挺有用的!Macmini选择哪个渠道购买好?现在比较划算...

取消回复欢迎 发表评论: