鱼头
项目部署

1Panel 服务器项目部署指南

本指南将详细介绍如何在 1Panel 服务器上部署不同类型的项目,包括静态网站、Node.js 项目和 Docker 项目,并涵盖反向代理、域名端口设置以及 Docker 网络模式的区别。

1. 静态网站部署

静态网站是最简单的部署类型,通常只包含 HTML、CSS、JavaScript 文件和图片等。

部署步骤

  1. 准备文件:将你的静态网站所有文件打包成 ziptar.gz 格式。
  2. 上传文件:登录 1Panel 面板,进入“文件”管理,找到你的网站存放目录(例如 /www/wwwroot/your_domain),将打包文件上传并解压。
  3. 创建网站
    • 在 1Panel 左侧菜单栏选择“网站” -> “网站列表” -> “创建网站”。
    • 选择“静态网站”。
    • 填写域名、根目录(指向你解压的网站文件目录,例如 /www/wwwroot/your_domain)。
    • 配置 SSL 证书(如果需要)。
    • 点击“创建”。

反向代理配置 (通常静态网站直接访问,但如果需要特定路径代理,可以在网站配置中修改)

  • 在网站配置中,你可以添加反向代理规则,将特定路径映射到其他服务。

2. Node.js 项目部署

Node.js 项目需要运行环境来执行 JavaScript 代码。

部署步骤

  1. 准备项目:确保你的 Node.js 项目已完成本地构建(例如 npm install),并且知道启动命令(例如 npm startnode app.js)。
  2. 上传文件:将你的 Node.js 项目文件上传到服务器的指定目录(例如 /www/wwwroot/your_node_app)。
  3. 安装 Node.js 环境
    • 在 1Panel 左侧菜单栏选择“应用商店”,搜索并安装“Node.js”应用。
    • 安装完成后,进入“应用” -> “已安装应用”,找到 Node.js,点击“设置”进行版本管理和安装。
  4. 创建 Node.js 网站
    • 在 1Panel 左侧菜单栏选择“网站” -> “创建” -> “运行环境”。
    • 类型选择“Node.js”。
    • 填写域名、项目目录(你的 Node.js 项目根目录)、启动命令(例如 npm start)、端口(你的 Node.js 应用监听的端口)。
    • 配置 SSL 证书(如果需要)。
    • 点击“创建”。

反向代理配置

1Panel 会自动为 Node.js 网站配置反向代理,将外部请求转发到你的 Node.js 应用监听的端口。

  • 你可以在网站配置中查看和修改反向代理规则。例如,你可以修改代理缓存、超时时间等。

3. Docker 项目部署

Docker 项目以容器化的方式运行,提供了环境隔离和易于部署的优势。

部署步骤 (通过 Docker Compose)

  1. 准备 Docker Compose 文件:在你的项目根目录准备一个 docker-compose.yml 文件,定义你的服务、镜像、端口映射、卷挂载等。

    version: '3.8'
    services:
      my-app:
        image: your-docker-image:latest # 你的 Docker 镜像
        container_name: my-app-container
        ports:
          - "8000:3000" # 宿主机端口:容器端口
        volumes:
          - ./data:/app/data # 卷挂载
        environment:
          NODE_ENV: production
    
  2. 上传文件:将你的项目文件(包括 docker-compose.yml)上传到服务器的指定目录(例如 /www/wwwroot/your_docker_app)。

  3. 安装 Docker

    • 在 1Panel 左侧菜单栏选择“应用商店”,搜索并安装“Docker”应用。
  4. 创建 Docker Compose 应用

    • 在 1Panel 左侧菜单栏选择“容器” -> “Compose” -> “创建 Compose”。
    • 填写名称、选择项目目录(包含 docker-compose.yml 的目录)。
    • 1Panel 会自动读取 docker-compose.yml 并显示服务信息。
    • 点击“创建”并启动。

反向代理配置 (将 Docker 服务暴露给外部)

  • 创建反向代理网站

    • 在 1Panel 左侧菜单栏选择“网站” -> “网站列表” -> “创建网站”。
    • 选择“反向代理”。
    • 填写域名。
    • 代理地址:填写 http://127.0.0.1:YOUR_HOST_PORT,其中 YOUR_HOST_PORT 是你在 docker-compose.ymlports 映射到宿主机的端口(例如上面的 8000)。
    • 配置 SSL 证书(如果需要)。
    • 点击“创建”。

    这样,当外部访问你的域名时,请求会被转发到 Docker 容器在宿主机上暴露的端口。

4. 反向代理的设置、域名和端口

域名设置

  • DNS 解析:确保你的域名已正确解析到你的 1Panel 服务器的 IP 地址。这通常在你的域名注册商的 DNS 管理界面进行设置。
  • 1Panel 网站绑定:在 1Panel 中创建网站时,需要填写正确的域名。

端口设置

  • 应用监听端口:你的应用程序(Node.js、Docker 容器内部服务)会监听一个特定的端口。
  • 宿主机端口:对于 Docker 项目,你可能需要将容器内部端口映射到宿主机的不同端口。
  • 反向代理端口:默认情况下,反向代理会将外部请求(通常是 80 或 443 端口)转发到你的应用监听的端口。

如何设置反向代理

1Panel 在创建网站时会自动配置反向代理。如果你需要手动修改或为已有网站添加反向代理:

  1. 进入网站配置:在 1Panel 左侧菜单栏选择“网站” -> “网站列表”,点击需要配置的网站名称。
  2. 编辑反向代理:在网站配置页面,找到“反向代理”选项卡。
    • 你可以添加新的代理规则。
    • 代理地址:填写你的后端服务的实际地址和端口(例如 http://127.0.0.1:3000http://your_docker_container_ip:8080)。
    • 代理缓存超时时间等高级设置也可以在此配置。
    • 代理路径:如果你希望只有特定路径的请求才被代理,可以在这里设置。

5. Docker 网络模式

Docker 提供了多种网络模式,它们决定了容器如何与宿主机以及其他容器进行通信。

5.1 Host 模式

  • 特点:容器与宿主机共享网络命名空间。这意味着容器直接使用宿主机的网络接口,容器内部暴露的端口直接映射到宿主机的相同端口。
  • 优点
    • 性能好:没有额外的网络虚拟化层,性能接近原生应用。
    • 简单:无需进行端口映射配置,容器内应用监听的端口就是宿主机上可访问的端口。
  • 缺点
    • 端口冲突:如果多个容器都使用 Host 模式,并且监听相同的端口,就会发生冲突。
    • 隔离性差:容器无法拥有独立的网络配置,安全性相对较低。
  • 适用场景:对性能要求高,且能确保端口不冲突的单容器应用,或者需要直接访问宿主机网络的服务(如某些网络监控工具)。

5.2 Bridge 模式 (默认模式)

  • 特点:Docker 会为宿主机创建一个名为 docker0 的虚拟网桥。每个容器都会连接到这个网桥,并获得一个独立的 IP 地址。容器之间可以通过 IP 地址进行通信。
  • 优点
    • 隔离性好:每个容器都有自己的网络命名空间和 IP 地址,彼此之间是隔离的。
    • 端口映射:通过端口映射 (-pportsdocker-compose.yml 中) 将容器内部端口暴露给宿主机,避免了端口冲突。
    • 灵活性高:易于管理多个容器和服务。
  • 缺点
    • 性能开销:由于存在网络虚拟化层,性能略低于 Host 模式。
    • 需要端口映射:外部访问容器需要通过宿主机的端口映射。
  • 适用场景:绝大多数 Docker 应用部署场景,推荐使用。

5.3 其他网络模式 (了解)

  • None 模式:容器没有网络接口,完全隔离。
  • Container 模式:一个容器共享另一个容器的网络命名空间。
  • 自定义网络:用户可以创建自定义的 Bridge 网络,以便更好地组织和管理容器之间的通信。在 docker-compose.yml 中定义 networks 部分即可使用。

总结

在 1Panel 中部署 Docker 项目时,默认情况下会使用 Bridge 模式。如果你通过 Docker Compose 部署,通常只需要在 docker-compose.yml 中配置 ports 映射,1Panel 的反向代理就会指向宿主机映射的端口。

希望这份指南能帮助你在 1Panel 服务器上顺利部署你的项目!

2026年1月23日阅读 00收藏 0

评论

登录后才可以发表评论。
暂无评论。