使用 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 ...
随机推荐
- Thinkpad T14 AMD版无线网卡不可用
硬件环境: Thinkpad T14 AMD 操作系统: Windows 10家庭版 问题描述: Windows 10在后台默默做了补丁更新,导致无线网卡和蓝牙鼠标都不可用(但是有线网却是能正常工作的 ...
- MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 2
描述: 2021-08-xx 13:31:30.049 DEBUG 9208 : ==> Preparing: SELECT SUM(end_vt) - SUM(start_vt) FROM s ...
- python操作txt文件,去除文件中的隔行空行
conn = re.sub(result, '\r\n', content) res = "".join( [s for s in conn.strip().splitlines( ...
- ASP.NET 跨域配置
报错信息 The 'Access-Control-Allow-Origin' header is present on the requested resource 解决方案 web.config配置 ...
- python基础安装虚拟环境
1.pip install virtualenv或者pip3 install virtualenv 2.在要存放虚拟环境的地方创建一个venv文件夹,用来存放所有创建的虚拟环境,方便查找与管理 3.m ...
- java中sha1.md5,base64到底怎么回事
MD5 Message Digest Algorithm MD5(中文名为消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护.MD5用的是哈希函数,在计算机网络中应用 ...
- 如何设计一个高性能的图 Schema
本文整理自青藤云安全工程师--文洲在青藤云技术团队内部分享,分享视频参考:https://www.bilibili.com/video/BV1r64y1R72i 图数据库的性能和 schema 的设计 ...
- vscode 批量函数前加const 正则表达式替换
需求 有200多个函数,我要在前面加const devService_importCertificate_result = function (args) { 方案 vscode 替换 打开正则的图标 ...
- .NET集成DeveloperSharp实现强大的AOP
(适用于.NET/.NET Core/.NET Framework)[目录]0.前言1.第一个AOP程序2.Aspect横切面编程3.一个横切面程序拦截多个主程序4.多个横切面程序拦截一个主程序5.优 ...
- electron 下网页获取 micphone 权限
网页获取麦克风或摄像头权限我们只需调用 navigator.mediaDevices.getUserMedia 方法就可唤起浏览器用户授权 const useMicphone = async () = ...