SEO基础

SEO基础

Products

当前位置:首页 > SEO基础 >

企业如何自建网站并开发企业App商城?

96SEO 2026-02-20 05:00 0


多容器位于不同主机

在我们日常学习或开发过程中如果我们的服务均采用docker容器的方式运行比如提供后端接口服务的容器containerA和提供数据存取服务的容器containerB如下图所示不同的docker容器拥有各自的ip地址和端口号。

企业如何自建网站并开发企业App商城?

多容器位于同一主机

本文假定一台主机只有一个docker进程。

在这种情况下容器AcontainerA和容器BcontainerB被同一个docker进程管理容器之间的通信就可以通过目标容器ipport进行直接访问如下图所示

当容器AcontainerA需要和容器BcontainerB进行通信时只需要在容器AcontainerA中通过172.18.0.2:3306即可完成通信。

这种通信方式为同主机容器到容器的通信。

这种方式有个较明显的缺点就是将容器限制在一台主机了。

如果要求将容器分布在不同的主机那这个方法就行不通了。

多容器位于不同主机

但是在企业级项目部署中往往存在多个主机协同提供服务的情况。

例如我们的后端接口服务容器containerA位于主机AhostA中数据存储容器containerB位于主机BhostB中在这种情况下我们为了方便省事往往会将数据存储容器containerB的端口号(比如mysql的3306)映射到主机BhostB的3306端口当位于主机AhostA的后端接口服务容器containerA需要对数据进行操作时通过主机A的ip:port对其数据存储容器containerB进行访问。

如下图所示

在该示意图中容器A要想与容器B通信需要容器B将端口映射到宿主机hostB中当连接主机B的3306端口时根据映射规则将访问请求转发到容器B中。

这种通信方式为跨主机容器到主机再到容器的通信。

这种方式虽然做到了将容器分布在不同的主机但是仍暴露出一个缺点目标容器的端口不得不挂载到宿主机对应端口且目标容器宿主机的端口也不得不对外开放万一该端口被不法分子扫描到进行攻击那就GG了。

针对以上两个方式所暴露出的缺点当我们既希望将容器分布在不同的主机又希望不暴露宿主机端口而是直接通过容器的ip:port进行通信docker官方推荐我们考虑一下集群环境。

二、介绍

Swam是Docker引擎内置原生)的集群管理和编排工具。

Docker

Docker容器集群服务是Docker官方对容器云生态进行支持的核心方案。

使用它用户可以将多个Docker主机封装为单个大型的虚拟Docker主机快速打造一套容器云平台。

Swarm

mode内置kv存储功能提供了众多的新特性比如:具有容错能力的去中心化设计、内置服务发现、负载均衡、路由网格、动态伸缩、滚动更新、安全传输等。

使得Docker原生的

Swam集群具备与Mesos

一个集群由多个Docker主机组成这些主机以集群模式运行充当管理者(管理成员资格和委托)和工作者(运行群服务)。

一个给定的Docker主机可以是一个管理者manager、一个工作者worker或者同时扮演这两个角色。

创建服务时您需要定义其最佳状态(副本数量、可用的网络和存储资源、服务对外开放的端口等)。

Docker致力于保持这种理想状态。

例如如果一个工作节点变得不可用Docker会将该节点的任务调度到其他节点上。

任务是一个运行的容器它是群服务的一部分由群管理器管理而不是一个独立的容器。

与独立容器相比swarm服务的一个关键优势是您可以修改服务的配置包括它所连接的网络和卷而无需手动重启服务。

Docker将更新配置停止使用过期配置的服务任务并创建与所需配置匹配的新任务。

当Docker在swarm模式下运行时您仍然可以在任何参与集群的Docker主机上运行独立的容器和swarm服务。

独立容器和集群服务之间的一个关键区别是只有集群管理器可以管理集群而独立容器可以在任何守护进程上启动。

Docker守护进程可以作为管理人员、工作人员或两者参与到一个群体中。

三、特性

CLI创建一组Docker引擎可以在其中部署应用程序服务。

不需要额外的编排软件来创建或管理一个群体。

这不就是打算和k8s杠一杠呢

去中心化设计

Docker引擎在运行时处理任何专门化而不是在部署时处理节点角色之间的差异。

我们可以使用Docker引擎部署两种类型的节点管理器和工作器。

这意味着我们可以从单个磁盘映像构建整个swarm。

声明式服务模型

Docker引擎使用一种声明性的方法让我们自定义应用程序堆栈中各种服务的期望状态。

例如我们可能会描述一个由带有消息队列服务的web前端服务和数据库后端组成的应用程序。

动态伸缩

对于每个服务我们可以声明想要运行的任务数量。

当扩大或缩小规模时swarm

manager会通过添加或删除任务来自动适应以保持所需的状态。

swarm

manager节点持续监控集群状态并协调实际状态和期望状态之间的任何差异。

例如如果我们设置一个服务来运行一个容器的10个副本并且托管其中两个副本的工作机崩溃管理器将创建两个新副本来替换崩溃的副本。

群组管理器将新的副本分配给正在运行且可用的worker。

多主机网络

我们可以为服务指定叠加网络。

当初始化或更新应用程序时群管理器自动分配地址给覆盖网络上的容器。

服务发现

集群管理器节点为集群中的每个服务分配一个唯一的DNS名称和负载平衡运行容器。

可以通过嵌入在swarm中的DNS服务器查询swarm中运行的每一个容器。

负载均衡

可以向外部负载平衡器公开服务端口。

在内部swarm允许我们指定如何在节点之间分发服务容器。

安全传输

群中的每个节点强制执行TLS相互认证和加密以确保自身和所有其他节点之间的通信安全。

我们可以选择使用自签名根证书或来自自定义根CA的证书。

滚动更新

manager允许您控制不同节点集的服务部署之间的延迟。

如果出现任何问题可以回滚到服务的前一个版本。

四、概念

在搭建docker集群之前我们需要了解几个概念节点(node)、服务(service)、任务(task)、负载均衡(loadbalance)。

节点nodes

每个节点node都是docker集群中的每一个docker实例当然也可以理解为运行docker进程的物理机。

在集群中的所有节点中又分为管理节点和工作节点。

管理节点

管理节点用于对docker集群的管理对集群的操作命令都需要在管理节点中执行(例外工作节点退出集群时需要在工作节点中执行退出命令)一个docker集群可以具有多个管理节点在众多管理节点中通过raft协议选举出唯一一个leader节点。

工作节点

工作节点接收并执行来自管理节点分发的任务(task)默认地管理节点也可以同时具有工作节点的功能。

服务(service)和任务(task)

服务是对任务的定义而任务执行于管理节点或工作节点。

服务是docker集群的中心结构也是用户与swarm交互的主要介质。

docker集群中的服务类似于微服务系统中的服务一个服务是一个或多个实例的集合。

而在docker集群中一个服务我们可以理解为多个提供相同服务的docker容器的集合。

在创建一个服务时我们可以指定该服务使用的docker镜像以及该服务能够创建的docker实例的副本数量。

如在一个docker集群中主机A中有两个容器mysqlA和redisA主机B中有两个容器mysqlB和redisB那么主机A中的mysqlA和主机B中的mysqlB属于同一个服务主机A中的redisA和主机B中的redisB属于同一个服务并且由管理节点实现对服务的管理(如同微服务系统中的注册中心)如下图所示

任务就是当我们需要调用集群中某一个服务时管理节点从其管理的服务集合中找到该服务所对应的docker容器实例然后向该实例指派一个任务使其提供相应的服务。

一旦任务被分配到某一个节点则不允许再对其进行修改。

负载均衡

当我们需要调用某一个服务时管理节点自动对该服务所对应的节点进行负载均衡调用。

例如微服务系统中服务注册中心的负载均衡机制。

五、docker网络

介绍完docker集群的概念我们需要考虑一下在docker集群中由于是多主机架构那么什么样的网络驱动能使跨主机的容器相互通信呢docker给我们提供的网络驱动有bridge、host、overlay、none、ipvlan、macvlan。

bridge

移除docker容器与宿主机之间的网络隔离直接使用宿主机的网络。

overlay

允许我们对docker容器分配物理地址使docker容器具有物理机表现。

在docker集群中我们使用overlay网络实现多主机内容器之间的相互通信。

overlay网络

overlay网络驱动在多个Docker主机之间创建分布式网络。

这个网络位于(覆盖)特定于主机的网络之上允许连接到它的容器(包括集群服务容器)在启用加密(TLS)时安全地通信。

Docker透明地处理往返于正确的Docker守护进程主机和正确的目的地容器的每个分组的路由。

六、docker集群搭建

操作系统主机名主机ipdocker版本CentOS7host10(管理节点)192.168.10.10v24.0.7CentOS7host20(工作节点)192.168.10.20v24.0.7CentOS7host30(工作节点)192.168.10.30v24.0.7docker版本必须大于v1.12.0docker的集群模式是从该版本开始的该版本发行于2016.07.28现在都已经2023年了我们直接安装最新版还能避免许多bug。

端口开放或关闭防火墙

SWMTKN-1-0glmg3n472i4bbpxrynjw0z0uoa7lnxagcfcgnwg40dd3mu4ga-eazqx6idqvn954nfpumn2vob0

192.168.10.10:2377To

--advertise-addr用于配置一个ip地址集群中其他节点使用此ip地址与管理节点实现通信。

docker

SWMTKN-1-0glmg3n472i4bbpxrynjw0z0uoa7lnxagcfcgnwg40dd3mu4ga-eazqx6idqvn954nfpumn2vob0

192.168.10.10:2377如果需要加入管理节点则使用下面命令

docker

SWMTKN-1-0glmg3n472i4bbpxrynjw0z0uoa7lnxagcfcgnwg40dd3mu4ga-eazqx6idqvn954nfpumn2vob0

192.168.10.10:2377注意该token有效期为24小时。

如果该token已过期则可以使用下面命令重新获取

[roothost10

SWMTKN-1-0glmg3n472i4bbpxrynjw0z0uoa7lnxagcfcgnwg40dd3mu4ga-eazqx6idqvn954nfpumn2vob0

[roothost10

/usr/libexec/docker/cli-plugins/docker-buildxcompose:

Docker

/usr/libexec/docker/cli-plugins/docker-composeServer:Containers:

0Running:

0cibl244fqcmh7k6x8a3kwkfp......Raft:......Dispatcher:Heartbeat

Period:

init初始化一个docker集群时docker默认会创建两个网络

overlay驱动的网络名称为ingress该网络用于处理集群中各个服务之间的控制与数据传输。

当我们创建服务service时如果没有指定自定义的overlay网络则默认使用ingress网络。

bridge驱动的网络名称为docker_gwbridge该网络用于维持集群中各个节点之间的连接。

[roothost10

我们把host20和host30作为工作节点加入到该集群。

复制上面的命令分别到到host20和host30两台主机中中执行

[roothost20

SWMTKN-1-0glmg3n472i4bbpxrynjw0z0uoa7lnxagcfcgnwg40dd3mu4ga-eazqx6idqvn954nfpumn2vob0

node

SWMTKN-1-0glmg3n472i4bbpxrynjw0z0uoa7lnxagcfcgnwg40dd3mu4ga-eazqx6idqvn954nfpumn2vob0

node

manager.说明该命令只允许在管理节点中使用。

我们在host10(管理节点)中再次执行此命令

[roothost10

现在集群已经搭建好了下面我们使用portainer实现docker的可视化界面。

部署单机模式

我们可以将portainer部署在docker集群的管理节点中此时portainer可以通过管理节点的docker进程实现对docker集群的可视化。

docker

portainer/portainer-ce:latest将portainer镜像运行为容器

docker

/var/run/docker.sock:/var/run/docker.sock

\-v

\portainer/portainer-ce:latest--privilegedtrue用于赋予该容器root权限。

在浏览器访问https://192.168.10.10:9443进入portainer创建页面。

Started选项只有Add

我们选择Standalone单机模式的docker环境点击下方按钮对该环境配置。

配置环境的方式有多种通过Agent、API、Socket、Edge

Agent

Standard四种方式。

我们以Socket方式为例将该环境命名为host10-standard。

注意该方式要求我们在运行portainer容器时添加挂载卷-v

/var/run/docker.sock:/var/run/docker.sock

环境配置完成后点击portainer首页就可以在环境列表中看到我们刚才添加的环境host1-standalone了。

点击该环境查看其详细信息

portainer提供了以集群方式运行的能力既然我们已经搭建好了具有三个节点的docker集群那么我们尝试一下portainer的集群部署。

在管理节点下载部署文件

https://downloads.portainer.io/ce2-19/portainer-agent-stack.yml

portainer-agent-stack.yml该文件内容如下主要就是根据镜像创建服务以及挂载卷、网络配置、端口配置、副本配置等信息。

version:

portainer/agent:2.19.3volumes:-

/var/run/docker.sock:/var/run/docker.sock-

/var/lib/docker/volumes:/var/lib/docker/volumesnetworks:-

[node.platform.os

portainer/portainer-ce:2.19.3command:

9443:9443-

manager]networks:agent_network:driver:

overlayattachable:

truevolumes:portainer_data:但是我们需要对该文件内容中agent部分增加一个端口挂载的配置否则在后面创建环境时会因为连接失败而无法创建环境。

portainer/agent:2.19.3volumes:-

/var/run/docker.sock:/var/run/docker.sock-

/var/lib/docker/volumes:/var/lib/docker/volumesports:-

9001:9001networks:-

portainer_portainer可以看到创建了一个网络portainer_agent_network、两个服务portainer_agent和portainer_portainer

在任意节点查看网络创建了一个overlay驱动的网络portainer_agent_network。

该网络会在集群中各个节点创建。

[roothost10

portainer_agent.0cibl244fqcmh7k6x8a3kwkfp.k3f1gkysdu64718ml6zm5cuzg8742edf0f3b7

/portainer

portainer_portainer.1.otjp9rsp17v8f4l6u2ma1mg7a在工作节点查看容器。

与管理节点不同的是工作节点只创建了portainer/agent容器它是由管理节点在集群中创建的副本容器。

[roothost20

portainer_agent.wfw312mxlolm6e8xgdwp6kndy.iputjhsv1q8yudkv6i760e694在浏览器访问https://192.168.10.10:9443进入portainer页面。

与部署单击模式不同的是在选择环境类型时我们应选择集群模式如下图所示

完成配置后在环境列表可以看到我们创建的portainer集群环境。

点击进入该环境查看详细信息

进入集群页面可以看到我们在管理节点上部署的portainer容器根据服务的副本配置在工作节点上也建立了相同的portainer容器副本。

八、部署一个容器集群

我们以创建busybox镜像的容器为例创建docker容器集群。

拉取镜像

zjwmzvwlf4fgisos37i5876s9注意在集群环境中创建overlay驱动网络时一定要添加参数--attachable为了集群容器或单机容器与运行在其他节点中的容器建立通信。

创建服务

busybox--replicas2表示需要创建两个busybox容器的副本--network

busybox_overlay_network表示使用我们在上面创建的网络

在容器列表页面可以看到busybox容器的集群可以看到两个busybox容器分别位于host20和host30节点ip地址分别为10.0.3.224和10.0.3.225。

主机容器ip地址host2010.0.3.225host3010.0.3.224

下面我们进入host20主机的busybox容器去ping位于host30主机中的busybox容器可以ping通反之相同。

集群扩展

上面我们创建busybox容器集群时设置其副本数量为2--replicas2现在我们通过portainer对副本数量进行修改为3。

现在再看一下集群页面可以发现busybox容器已扩展到三个节点如下图所示



SEO优化服务概述

作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。

百度官方合作伙伴 白帽SEO技术 数据驱动优化 效果长期稳定

SEO优化核心服务

网站技术SEO

  • 网站结构优化 - 提升网站爬虫可访问性
  • 页面速度优化 - 缩短加载时间,提高用户体验
  • 移动端适配 - 确保移动设备友好性
  • HTTPS安全协议 - 提升网站安全性与信任度
  • 结构化数据标记 - 增强搜索结果显示效果

内容优化服务

  • 关键词研究与布局 - 精准定位目标关键词
  • 高质量内容创作 - 原创、专业、有价值的内容
  • Meta标签优化 - 提升点击率和相关性
  • 内容更新策略 - 保持网站内容新鲜度
  • 多媒体内容优化 - 图片、视频SEO优化

外链建设策略

  • 高质量外链获取 - 权威网站链接建设
  • 品牌提及监控 - 追踪品牌在线曝光
  • 行业目录提交 - 提升网站基础权威
  • 社交媒体整合 - 增强内容传播力
  • 链接质量分析 - 避免低质量链接风险

SEO服务方案对比

服务项目 基础套餐 标准套餐 高级定制
关键词优化数量 10-20个核心词 30-50个核心词+长尾词 80-150个全方位覆盖
内容优化 基础页面优化 全站内容优化+每月5篇原创 个性化内容策略+每月15篇原创
技术SEO 基本技术检查 全面技术优化+移动适配 深度技术重构+性能优化
外链建设 每月5-10条 每月20-30条高质量外链 每月50+条多渠道外链
数据报告 月度基础报告 双周详细报告+分析 每周深度报告+策略调整
效果保障 3-6个月见效 2-4个月见效 1-3个月快速见效

SEO优化实施流程

我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:

1

网站诊断分析

全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。

2

关键词策略制定

基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。

3

技术优化实施

解决网站技术问题,优化网站结构,提升页面速度和移动端体验。

4

内容优化建设

创作高质量原创内容,优化现有页面,建立内容更新机制。

5

外链建设推广

获取高质量外部链接,建立品牌在线影响力,提升网站权威度。

6

数据监控调整

持续监控排名、流量和转化数据,根据效果调整优化策略。

SEO优化常见问题

SEO优化一般需要多长时间才能看到效果?
SEO是一个渐进的过程,通常需要3-6个月才能看到明显效果。具体时间取决于网站现状、竞争程度和优化强度。我们的标准套餐一般在2-4个月内开始显现效果,高级定制方案可能在1-3个月内就能看到初步成果。
你们使用白帽SEO技术还是黑帽技术?
我们始终坚持使用白帽SEO技术,遵循搜索引擎的官方指南。我们的优化策略注重长期效果和可持续性,绝不使用任何可能导致网站被惩罚的违规手段。作为百度官方合作伙伴,我们承诺提供安全、合规的SEO服务。
SEO优化后效果能持续多久?
通过我们的白帽SEO策略获得的排名和流量具有长期稳定性。一旦网站达到理想排名,只需适当的维护和更新,效果可以持续数年。我们提供优化后维护服务,确保您的网站长期保持竞争优势。
你们提供SEO优化效果保障吗?
我们提供基于数据的SEO效果承诺。根据服务套餐不同,我们承诺在约定时间内将核心关键词优化到指定排名位置,或实现约定的自然流量增长目标。所有承诺都会在服务合同中明确约定,并提供详细的KPI衡量标准。

SEO优化效果数据

基于我们服务的客户数据统计,平均优化效果如下:

+85%
自然搜索流量提升
+120%
关键词排名数量
+60%
网站转化率提升
3-6月
平均见效周期

行业案例 - 制造业

  • 优化前:日均自然流量120,核心词无排名
  • 优化6个月后:日均自然流量950,15个核心词首页排名
  • 效果提升:流量增长692%,询盘量增加320%

行业案例 - 电商

  • 优化前:月均自然订单50单,转化率1.2%
  • 优化4个月后:月均自然订单210单,转化率2.8%
  • 效果提升:订单增长320%,转化率提升133%

行业案例 - 教育

  • 优化前:月均咨询量35个,主要依赖付费广告
  • 优化5个月后:月均咨询量180个,自然流量占比65%
  • 效果提升:咨询量增长414%,营销成本降低57%

为什么选择我们的SEO服务

专业团队

  • 10年以上SEO经验专家带队
  • 百度、Google认证工程师
  • 内容创作、技术开发、数据分析多领域团队
  • 持续培训保持技术领先

数据驱动

  • 自主研发SEO分析工具
  • 实时排名监控系统
  • 竞争对手深度分析
  • 效果可视化报告

透明合作

  • 清晰的服务内容和价格
  • 定期进展汇报和沟通
  • 效果数据实时可查
  • 灵活的合同条款

我们的SEO服务理念

我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。

提交需求或反馈

Demand feedback