首页 > 系统相关 >使用 Debian、Docker 和 Nginx 部署 Web 应用

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

时间:2023-06-25 23:46:24浏览次数:59  
标签:Web app sudo Nginx DNS Docker

前言

本文将介绍基于 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

(完)

标签:Web,app,sudo,Nginx,DNS,Docker
From: https://www.cnblogs.com/mazey/p/17504265.html

相关文章

  • 服务器与本地资源同步,在ubuntu自建git库,使用nginx远程http访问
    xshell在linux与windows之间传文件虽然方便,但使用git才能真正实现资源同步。为实现服务器与本地资源同步,在ubuntu服务器端自建git库。使用 git-http-backend 搭建git服务的原理都是类似的,主要是利用web服务器(apache/nginx)进行用户认证,并将用户信息传递给CGI程序 ......
  • Nginx反向代理&记录用户IP地址企业案例
    反向代理机器节点:lb0110.0.0.30#lb01是反向代理服务器(包括负载均衡的功能)www0110.0.0.40www0210.0.0.50【演示反向代理功能】 图片解读:使用客户端机器www01,访问负载均衡lb01(反向代理),看到了www01,www02页面信息在www01服务器上检测客户端信息,发现请求是10.0.0.3......
  • 【大数据】通过 docker-compose 快速部署 MinIO 保姆级教程
    目录一、概述二、MinIO与Ceph对比1)架构设计对比2)数据一致性对比3)部署和管理对比4)生态系统和兼容性对比三、前期准备1)部署docker2)部署docker-compose四、创建网络五、MinIO编排部署1)下载MinIO安装包2)配置3)启动脚本bootstrap.sh4)构建镜像Dockerfile5)编排docker-compose.......
  • springboot+vue基于Web的社区医院管理服务系统,附源码+数据库+论文+PPT,适合课程设计、
    1、项目介绍在Internet高速发展的今天,我们生活的各个领域都涉及到计算机的应用,其中包括社区医院管理服务系统的网络应用,在外国线上管理系统已经是很普遍的方式,不过国内的管理系统可能还处于起步阶段。社区医院管理服务系统具有社区医院信息管理功能的选择。社区医院管理服务系统......
  • ActiveX 控件在过去是非常流行的技术,但近年来已经逐渐被其他技术所取代。由于其局限性
    ActiveX控件是一种可重用的软件组件,它们基于微软的COM(ComponentObjectModel)技术,并被广泛应用于Windows平台上的应用程序开发。ActiveX控件可以包含图形用户界面元素、功能模块、数据处理等,并提供给其他应用程序使用。下面是关于ActiveX控件的一些常见信息:安装和注册:使用A......
  • docker compose 例子
    docker-compose-fxxx.ymlupversion:"3"services:redis1:image:'redis'ports:-'6389:6379'mysql1:image:'mysql:5.7'restart:alwayscontainer_name:mysql-5.7ports:-&......
  • Nginx 优化
    目录一、Nginx隐藏版本号1.访问网站查看版本号2.隐藏方法3.刷新网页二、Nginx更改版本号1.修改Nginx源码文件2.重新编译安装3.将隐藏版本号设置打开4.刷新网页三、Nginx日志分割1.编写shell脚本2.运行脚本3.创建定时任务四、Nginx压缩页面1.更改配置文件2.清空......
  • Ingress-Nginx 灰度(金丝雀)发布
    使用Ingress-Nginx进行灰度(金丝雀)发布Ingress-NginxCanary介绍NginxIngressController作为项目对外的流量入口和项目中各个服务的反向代理。官方文档概述:Annotations-Ingress-NginxController(kubernetes.github.io)NginxAnnotations的几种Canary规则:Annota......
  • centos7-datax和datax-web安装以及安装中问题的解决
    一、下载这些软件(见) 系统变量设置(安装maven和jdk略)vi /etc/profileJAVA_HOME=/usr/local/jdk1.8.0_40CLASSPATH=$JAVA_HOME/lib/PATH=$PATH:$JAVA_HOME/binDATAX_HOME=/usr/local/dataxPATH=$PATH:$DATAX_HOME/bin exportMAVEN_HOME=/usr/local/apache-maven-3......
  • Docker dockerfile
    参考资料:Docker教程|菜鸟教程Dockerfile是用于构建Docker镜像的文本文件,它包含了构建镜像所需的所有指令和配置信息。使用Dockerfile可以方便地构建镜像,确保每个镜像中的环境和配置都一致。下面是使用Dockerfile构建Docker镜像的基本步骤:在一个空目录下创建一个名为"Doc......