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

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 本文将介绍基于 Debian 的系统上使用 Docker 和 Nginx 进行 Web 应用部署的过程。着重介绍了 Debian、Docker 和 Nginx 的安装和配置。

前言

本文将介绍基于 Debian 的系统上使用 Docker 和 Nginx 进行 Web 应用部署的过程。着重介绍了 Debian、Docker 和 Nginx 的安装和配置。

第 1 步:更新和升级 Debian 系统

  1. 通过 SSH 连接到服务器。
  2. 更新软件包列表:sudo apt update
  3. 升级已安装的软件包:sudo apt upgrade

第 2 步:安装 Docker

sudo apt install docker.io

第 3 步:安装 Nginx

sudo apt install nginx

第 4 步:为 Web 应用配置 Nginx

1. 为 Web 应用创建一个新的 Nginx 配置文件:

sudo nano /etc/nginx/sites-available/app.conf

2. 将以下内容添加到配置文件中,将 app.example.com 替换为域名,将 app_container 替换为 Docker 容器的访问地址:

server {
   
    listen 80;
    server_name app.example.com;

    location / {
   
        proxy_pass http://app_container:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

3. 创建软链接以启用站点:

sudo ln -s /etc/nginx/sites-available/app.conf /etc/nginx/sites-enabled/

4. 测试 Nginx 配置:

sudo nginx -t

5. 如果配置有效,请重新加载 Nginx:

sudo systemctl reload nginx

第 5 步:使用 Docker 部署 Web 应用

  1. 拉取 Web 应用的 Docker 镜像或在本地构建。
  2. 使用适当的端口映射和环境变量运行新的 Docker 容器:
docker run -d --name app_container -p 8080:80 app_image

app_image 替换为 Web 应用的 Docker 镜像名称。

第 6 步:检查防火墙设置

Debian 系统上,可以使用 ufw(Uncomplicated Firewall)来管理防火墙规则。要检查当前规则,运行:

sudo ufw status

确保允许必要的端口(例如,HTTP 和 HTTPS 分别需要 80 和 443 端口,以及后端服务所需的其他端口)。

如果需要打开特定端口,使用以下命令:

sudo ufw allow [port_number]/tcp

[port_number] 替换为要打开的实际端口数字。

第 7 步:配置 DNS

腾讯云 DNSPod

  1. 登录云服务商账户并进入「DNS 解析 DNSPod」。
  2. 选择域名对应的「解析」。
  3. 单击「添加记录」以添加新的 DNS 记录。
  4. 将记录类型设置为「A」。
  5. 在主机记录字段输入子域名,例如 app
  6. 在记录值字段输入服务器的 IP 地址,例如 233.233.233.233
  7. 点击「确认」完成配置。

腾讯云 DNSPod

Cloudflare[可选]

  1. 登录 Cloudflare 帐户并选择域名,例如 app.example.com
  2. 转到 Cloudflare 仪表板中的「DNS」选项卡。
  3. 单击「+ Add record」以添加新的 DNS 记录。
  4. 将记录类型设置为「A」。
  5. 在「Name」字段中输入子域名,例如 app
  6. 在「IPv4 address」字段中输入服务器的 IP 地址,例如 233.233.233.233
  7. 选择所需的「TTL」值或将其保留为「Auto」。
  8. 将「Proxy status」设置为「Proxied」以使用 Cloudflare 的 CDN 和安全功能,或将其设置为「DNS only」仅用于 DNS 管理。
  9. 单击「Save」添加记录。

现在,通过在 Nginx 配置文件中配置的域名访问 Web 应用了。

版权声明

本博客所有的原创文章,作者皆保留版权。转载必须包含本声明,保持本文完整,并以超链接形式注明作者后除和本文原始地址:https://blog.mazey.net/3629.html

(完)

目录
相关文章
|
2月前
|
消息中间件 监控 RocketMQ
Docker部署RocketMQ5.2.0集群
本文详细介绍了如何使用Docker和Docker Compose部署RocketMQ 5.2.0集群。通过创建配置文件、启动集群和验证容器状态,您可以快速搭建起一个RocketMQ集群环境。希望本文能够帮助您更好地理解和应用RocketMQ,提高消息中间件的部署和管理效率。
364 91
|
18天前
|
Ubuntu 安全 Docker
Ubuntu下部署及操作Docker技巧
以上就是在Ubuntu下部署及操作Docker的具体步骤。但这只是冰山一角,Docker的魅力远不仅如此。你可以将其视为存放各种工具的小箱子,随时随地取用,极大地提升工作效率。你也可以私人订制,适应不同的开发环境,就像一个拥有各种口味冰淇淋的冰箱,满足各种各样的需求。好了,现在你已经掌握了基本的Docker运用技巧,快去尝试使用吧!记住,沉浸在探索中,你会找到无尽的乐趣和满满的收获。
81 23
|
2月前
|
存储 NoSQL Redis
Docker 部署 Redis
在使用 Docker 部署 Redis 时,为实现数据持久化,需正确挂载容器内的数据目录到宿主机。推荐命令如下: ``` docker run -d --name redis -v /mnt/data/redis:/data -p 6379:6379 redis ``` 该命令将宿主机的 `/mnt/data/redis` 目录挂载到容器的 `/data` 目录,确保 Redis 数据持久化。此路径更通用,适合大多数场景。避免使用不匹配的挂载路径,如 `/var/lib/redis` 或 `/mnt/data/redis` 到非默认目录,以防止数据无法正确持久化。
|
28天前
|
安全 API 算法框架/工具
大模型文件Docker镜像化部署技术详解
大模型文件Docker镜像化部署技术详解
195 2
|
3月前
|
存储 关系型数据库 MySQL
美团面试:MySQL为什么 不用 Docker部署?
45岁老架构师尼恩在读者交流群中分享了关于“MySQL为什么不推荐使用Docker部署”的深入分析。通过系统化的梳理,尼恩帮助读者理解为何大型MySQL数据库通常不使用Docker部署,主要涉及性能、管理复杂度和稳定性等方面的考量。文章详细解释了有状态容器的特点、Docker的资源隔离问题以及磁盘IO性能损耗,并提供了小型MySQL使用Docker的最佳实践。此外,尼恩还介绍了Share Nothing架构的优势及其应用场景,强调了配置管理和数据持久化的挑战。最后,尼恩建议读者参考《尼恩Java面试宝典PDF》以提升技术能力,更好地应对面试中的难题。
|
1月前
|
JSON 运维 Ubuntu
在Docker上部署Ollama+AnythingLLM完成本地LLM Agent部署
通过以上步骤,您可以成功在Docker上部署Ollama和AnythingLLM,实现本地LLM Agent的功能。在部署过程中,确保环境和配置正确,以避免不必要的问题。希望本文能够帮助您顺利完成部署,并在本地环境中高效地使用LLM模型。
650 8
|
2月前
|
人工智能 文字识别 安全
Stirling-PDF:51.4K Star!用Docker部署私有PDF工作站,支持50多种PDF操作,从此告别在线工具
Stirling-PDF 是一款基于 Docker 的本地化 PDF 编辑工具,支持 50 多种 PDF 操作,包括合并、拆分、转换、压缩等,同时提供多语言支持和企业级功能,满足个人和企业用户的多样化需求。
154 6
Stirling-PDF:51.4K Star!用Docker部署私有PDF工作站,支持50多种PDF操作,从此告别在线工具
|
2月前
|
JavaScript 前端开发 Docker
如何通过pm2以cluster模式多进程部署next.js(包括docker下的部署)
通过这些步骤,可以确保您的Next.js应用在多核服务器上高效运行,并且在Docker环境中实现高效的容器化管理。
289 44
|
2月前
|
中间件 关系型数据库 数据库
docker快速部署OS web中间件 数据库 编程应用
通过Docker,可以轻松地部署操作系统、Web中间件、数据库和编程应用。本文详细介绍了使用Docker部署这些组件的基本步骤和命令,展示了如何通过Docker Compose编排多容器应用。希望本文能帮助开发者更高效地使用Docker进行应用部署和管理。
84 19
|
1月前
|
Docker Python 容器
Docker——阿里云服务器使用Docker部署python项目全程小记
本文记录了我在阿里云服务器上使用Docker部署python项目(flask为例)的全过程,在这里记录和分享一下,希望可以给大家提供一些参考。
180 0
下一篇
oss创建bucket