使用 Debian、Docker 和 Nginx 部署 Web 应用
前言
本文将介绍基于 Debian 的系统上使用 Docker 和 Nginx 进行 Web 应用部署的过程。着重介绍了 Debian、Docker 和 Nginx 的安装和配置。
第 1 步:更新和升级 Debian 系统
- 通过 SSH 连接到服务器。
- 更新软件包列表:
sudo apt update - 升级已安装的软件包:
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 应用
- 拉取 Web 应用的 Docker 镜像或在本地构建。
- 使用适当的端口映射和环境变量运行新的 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
- 登录云服务商账户并进入「DNS 解析 DNSPod」。
- 选择域名对应的「解析」。
- 单击「添加记录」以添加新的 DNS 记录。
- 将记录类型设置为「A」。
- 在主机记录字段输入子域名,例如
app。 - 在记录值字段输入服务器的 IP 地址,例如
233.233.233.233。 - 点击「确认」完成配置。

Cloudflare[可选]
- 登录 Cloudflare 帐户并选择域名,例如
app.example.com。 - 转到 Cloudflare 仪表板中的「DNS」选项卡。
- 单击「+ Add record」以添加新的 DNS 记录。
- 将记录类型设置为「A」。
- 在「Name」字段中输入子域名,例如
app。 - 在「IPv4 address」字段中输入服务器的 IP 地址,例如
233.233.233.233。 - 选择所需的「TTL」值或将其保留为「Auto」。
- 将「Proxy status」设置为「Proxied」以使用 Cloudflare 的 CDN 和安全功能,或将其设置为「DNS only」仅用于 DNS 管理。
- 单击「Save」添加记录。
现在,通过在 Nginx 配置文件中配置的域名访问 Web 应用了。
版权声明
本博客所有的原创文章,作者皆保留版权。转载必须包含本声明,保持本文完整,并以超链接形式注明作者后除和本文原始地址:https://blog.mazey.net/3629.html
(完)
使用 Debian、Docker 和 Nginx 部署 Web 应用的更多相关文章
- Docker 入门 到部署Web 程序- (阿里面试常用的docker命令和优点)
最近阿里的面试官问我Docker是做什么用的,我记得之前360和美团,京东的都问过,但是一直没时间看,最近有时间了,系统的学习了一下Docker,在此做一下记录,方便各位看官学习交流 一.Docker ...
- nginx 部署web页面问题
nginx 部署web页面的时候,路径都是对的,但是css文件就是不起作用,控制台提示如下,原来是格式的问题,截图如下: css 被转成了application/octet-stream,这个是ngi ...
- 利用Docker Hub上的Nginx部署Web应用
Docker Hub上提供了很多镜像,如Nginx,我们不需要自己从ubuntu开始装Nginx再做发布,只需要先下载镜像到本地 docker pull nginx 在/opt下新建文件夹API,将需 ...
- ASP.NET Core Docker jexus nginx部署-CentOS实践版
本文用图文的方式记录了我自己搭建centos+asp.net core + docker + jexus + nginx的整个过程,希望对有同样需求的朋友有一定的参考作用. 本文主要内容如下: cen ...
- docker 用nginx 部署 node应用
1.查询镜像 # 1.查询镜像. docker search nginx 2.拉取指定的镜像 # 2.拉取指定的镜像 docker pull nginx 3.下载完成后终端查看 # 3.下载完成后终 ...
- Docker镜像+nginx 部署 vue 项目
一.打包vue项目 在开发完的vue项目输入如下命名,打包生成dist文件夹 yarn build / npm run build 此时根目录会多出一个文件夹:dist文件夹,里面就是我们要发布的东西 ...
- 【docker专栏4】使用docker安装nginx提供web服务
一般学习一项技术,会先用一个最简单的例子或最典型的例子来向大家讲解入门内容,所以此文为大家介绍使用docker安装nginx容器服务.从基础使用的角度来讲,此文几乎涵盖了docker最核心的内容:镜像 ...
- Git + Docker + Jenkins自动化部署web到Linux(Centos)
1.把代码托管到Github上 2.安装Docker 3.安装Jenkins 4.在项目中编写Dockerfile.publish.sh (1)Dockerfile内容 # 基于dotnet基础环境构 ...
- nginx部署web.py项目
= =测试环境直接就python index.py就好啦 生产环境nginx + web.py + uwsgi 安装uwsgi... pip install uwsgi 首先把自己的代码小改一下... ...
- docker+react+nginx部署
一.准备工作 1.先确保项目可以正常运行. 2.如果拉代码到Linux下进行打包,注意node版本,我就是版本不同,yarn build一直不成功. 3.找一个nginx的配置文件nginx.conf ...
随机推荐
- 如何保证消息顺序执行(Rabbitmq/kafka)
转载: https://www.cnblogs.com/-wenli/p/13047059.html https://www.jianshu.com/p/02fdcb9e8784
- 【Azure Developer】示例: 在中国区调用MSGraph SDK通过User principal name获取到User信息,如Object ID
问题描述 示例调用MSGraph SDK通过User principal name获取到User信息,如Object ID. 参考资料 选择 Microsoft Graph 身份验证提供程序 : ht ...
- 【Azure 环境】IntelliJ IDEA Community Edition 2021.2.3登陆Azure账号时,无法切换到中国区
问题描述 在IntelliJ IDEA Community Edition 2021.2.3中开发Azure Function程序,最后准备部署到中国区 Azure Function中.如下,在Int ...
- shell脚本的基本使用
本文是对菜鸟教程 shell编程原文 的总结并记录 如有侵权 联系删除 简介 说明: Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁.这个应用程序提供了一个界面,用户通过这 ...
- Codeforces Round 345 (Div. 1)A. Watchmen(容斥原理)
A. Watchmen 当欧几里得距离和曼哈顿距离相等时,\(x1==x2||y1==y2\) 这两个条件满足其一.这和容斥原理一样,至少选择一个的条件. 我们可以计算xi,以及小于i之前的这些,这样 ...
- 继续总结Python中那些简单好用的用法
上一篇文章Python中那些简单又好用的特性和用法发出后,群里的小伙伴又给补充了几个好用的用法,结合生产实用经验汇总整理如下,各位看官如有需要请自取 反射,反射是一种机制,可以在运行时获取.检查和修改 ...
- Kubernetes CKA考试之Killer Simulator(下)
写在前面 个人微信公众号:密码应用技术实战 个人博客园首页:https://www.cnblogs.com/informatics/ 注:学习交流使用 目录 写在前面 Question 16 | Na ...
- Spring事务(四)-事务失效场景
有时候,我们明明在类或者方法上添加了@Transactional注解,却发现方法并没有按事务处理.其实,以下场景会导致事务失效. 1.事务方法所在的类没有加载到Spring IOC容器中. Sprin ...
- Java解析JSON数据,有回车符\n时解析报错
一.问题由来 测试人员最近在测试时,后台日志一直抱错,大致意思是JSON数据解析错误,错误信息如下: 二.问题分析 去查看代码时,发现异常信息是这里抛出来的,解析时使用的是json-lib这个包中的方 ...
- java学习 javaz-001 Helloworld 第一个demo
java学习 javaz-001 Helloworld 第一个demo 目录 学习目标 前期准备 java sdk 1.8环境 编辑器IDE的选择 代码开发 目录结构 创建第一个java文件 创建第2 ...