0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何把HPE RL300服务器引入x86-only的Web服务部署?

安晟培半导体 来源:安晟培半导体 2024-03-20 10:26 次阅读

在上一篇《技术文章 | 多架构部署:优势有哪些?》中,我们主要介绍了多架构部署在能耗、占地空间和性能方面带来的诸多优势。本文将介绍如何把 HPE RL300 服务器引入 x86-only 的 Web 服务部署,并使用直接迁移的方法,将部分应用程序迁移到该服务器。由于大多数现代的 Web 应用程序都采用基于微服务的架构,因此单独迁移单个微服务至新型的 Arm 服务器会更为简便,无需将整个应用程序迁移至 arm64。

接下来,我们将以前端微服务作为多架构部署的一个实际用例。NGINX 是一款应用广泛的 Web 服务器,适用于网上银行、社交网络电子商务等多种 Web 应用,以及多个并发用户在既定网站内浏览不同应用程序的场景。下面,本文将详细介绍如何使用 NGINX 将此类流行的 Web 服务器扩展至 HPE RL300 服务器。

同时,我们还使用横向扩展(scale-out)的复合 Web 服务评估案例研究的结果,并计算了将前端 NGINX 层迁移到 HPE RL300 服务器所带来的益处。根据性能和每瓦性能数据的对比,把 NGINX 从某款 x86 处理器迁移到 Ampere Altra Max 处理器后,可节省多达 1/3 的机架空间,并降低 1/3 的功耗。此外,当整个 Web 服务继续在多体系结构部署中运行时,其余的应用层仍在 x86 服务器上保持原状,且性能不受任何影响。

先决条件

为了实施基于 x86 和 arm64 服务器的多架构部署,至少需要两台安装了 Web 服务器软件(NGINX)的服务器。其中,一台采用 x86 处理器,以下称为“主机 1”;另一台则是搭载了 Ampere Altra Max 处理器的 HPE ProLiant RL300 服务器,以下称为“主机 2”。

当然,用户也可以选择在某个特定服务器上运行多个虚拟机或容器,而不使用整机。

安装 NGINX Web 服务器

为了向用户展示应用程序的网页内容,需要选用高性能的 Web 服务器 NGINX 作为应用程序的前端。根据操作系统的不同,可以选择 YUM 或 APT 包管理工具进行软件安装

sudo yum -y update
sudo yum install ca-certificates
sudo yum -y install nginx

首先,在 x86 服务器(主机 1)上部署 NGINX,并使其能连接到 NGINX。如果您已经启用了防火墙,则请确保允许常规 HTTP 流量通过端口 80,8080;如果您配置了 SSL,则还需允许 HTTPS 流量通过端口 443 。

启动 NGINX 并验证状态,请运行以下代码:

sudo systemctl start nginx
sudo systemctl status nginx

通过 Web 浏览器连接到主机 1 的 IP 地址或主机名。如果您看到的是 NGINX 默认登陆页面,说明您已成功安装了 NGINX,并启用了 Web 服务器的 HTTP 流量。

58096d84-e65d-11ee-a297-92fbcf53809c.png

将 NGINX 配置为负载均衡器

在大规模集群部署中,可以使用多台服务器托管 Web 应用程序的前端服务。负载均衡能够带来诸多好处,比如能够实现应用程序的跨服务器扩展,提升程序性能,优化用户体验,以及增强冗余性。

NGINX 凭借其简洁而强大的特性,可作为负载均衡器,有效提升服务器资源的利用率和运行效率。您只需按照指令配置 NGINX,指定其监听连接的位置以及重定向的目标,即可实现负载均衡。

为了配置负载均衡,需要修改 NGINX 配置文件。默认情况下,该文件名为 **nginx.conf**,并放置在 **/etc/nginx** 目录下。然而,具体的位置可能会根据安装 NGINX 时所使用的软件包管理系统和操作系统而定。

在 x86 服务器(主机 1)上,需要编辑 NGINX 配置文件,并定义 upstream 和 server 两个模块,具体操作如下:

# Define which servers to include in the load balancing scheme. 
http {
  upstream backend {
   server host1:8080; 
  }


  # This server accepts all traffic to port 80 and passes it to the upstream. 
  # Notice that the upstream name and the proxy_pass need to match.
  server {
   listen 80; 
   
   location / {
     proxy_pass http://backend;
   }
  }
  # Use port 8080 for the web server configuration
  server {
   listen 8080; 
  }
}

要为 HTTPS 而不是 HTTP 配置负载均衡,只需使用"https"作为协议,然后使用以下命令重新启动 NGINX。

sudo systemctl restart nginx

检查 NGINX 是否成功重启。当您在网络浏览器中输入负载均衡器的公共 IP 地址时,它会将请求传递给主机 1 上的后端服务器。

添加 RL300 以创建多架构部署

接下来,我们将在 HPE RL300 服务器(主机 2)上运行一个新的 NGINX 实例,以扩展前端部署。首先,使用上文“安装 NGINX Web 服务器”部分所述的相同方法,在 RL300 服务器上安装 NGINX。开源的 NGINX 软件包在 x86 和 arm64 服务器上都运行良好。为了获得 NGINX 的最佳性能,Ampere 提供了一些优化建议。此外,我们还为提供了针对 arm64 做源代码编译和构建 NGINX 的高效指南。

下一步,需要在服务器(主机 2)上配置 NGINX。我们不会将它配置为负载均衡器,服务器部分使用默认的 nginx.conf,端口为 8080。主机 2 上的 nginx.conf 文件将不包含 upstream 模块,Server 模块如下所示:

http {
  
  # This server accepts all traffic to port 8080 a
  server {
   listen 8080; 
  }
}

安装完成后,启动 NGINX 服务,并确保您可以通过 web 服务器上的主机 2 IP 地址访问 NGINX 默认登陆页面。

接下来,更新主机 1 上的 NGINX 负载均衡器服务,将新的 RL300 纳入 NGINX 负载均衡器配置。编辑主机 1 上的 nginx.conf 文件,在 upstream 模块添加主机 2 的 IP 地址。

# Define which servers to include in the load balancing scheme. 
# It's best to use the servers' private IPs for better performance and security.
# Add the ip address for RL300 to the upstream.
http {
  upstream backend {
   server host1:8080; 
   server host2:8080;
  }


  # This loadbalancer accepts all traffic to port 80 and passes it to the upstream. 
  # Notice that the upstream name and the proxy_pass need to match.


  server {
   listen 80; 
   location / {
     proxy_pass http://backend;
   }
  }
  server {
   listen 8080; 




  }
}

使用以下命令重启 NGINX

sudo systemctl restart nginx

现在,当您访问负载均衡器的 IP 地址时,它都会按照循环的方式将请求分发到 upstream 模块中配置的两个服务器上。至此,NGINX 的多架构部署已完成,用户流量被分发到运行在 x86 和 arm64 服务器上的 NGINX 实例中。

将复合 Web 应用程序的前端(NGINX)

迁移到异构集群的优势

为了深入了解将 NGINX 等服务迁移到 Ampere Altra 处理器的优势,我们对一个由四层微服务组成的复合 web 服务进行了扩展的分析。这四层分别为:Web 前端(NGINX)、键值存储(REDIS)、对象缓存(Memcached)以及后端数据库(MySQL)。我们按照整个服务的百分比,为每层所选的应用程序分配了不同的权重。在我们的示例中,我们将负载设定为每秒 130 万个请求,这些请求由服务的前端层接收,并由作为 HTTPS 服务器的 NGINX 进行处理。随后,我们根据各层组件的权重设定了相应的总性能水平,以此确定加权四层 web 服务模型的整体负载。

以下图表对比了运行在某 x86 服务器上的复合四层 web 服务及其所有组件微服务,以及基于 Ampere arm64 的混合架构部署。在混合架构场景中,web 服务前端(NGINX)组件迁移到了 Ampere Altra Max 云原生处理器,但其它三个组件微服务仍在某 x86 服务器上运行。结果显示,即使仅将 web 服务的单一组件(NGINX)迁移到 Ampere Altra Max 云原生处理器,也能显著减少所需服务器的总量,同时降低维持相同性能(以每秒请求数衡量)所需的整体功耗。

584db494-e65d-11ee-a297-92fbcf53809c.png

在数据中心里,若每机架最大功耗预算为 12.8 千瓦,将 NGINX 转换为 Ampere Altra Max 云原生处理器后,所节省的功耗足以将机架占用空间从 3 个(总功耗预算 38.4 千瓦)减少到 2 个(总功耗 25.6 千瓦)。

5862d6b2-e65d-11ee-a297-92fbcf53809c.png

总体而言,采用基于 Arm 架构的 HPE ProLiant RL300 服务器进行多架构部署的益处显而易见。对于像 NGINX 这样的微服务,使用容器化镜像进行代码迁移的过程简单直接。通过负载均衡和反向代理等功能,可以轻松地在不同服务器上以混合架构(包括 x86 和 arm64)部署和运行应用程序的多个实例。此外,将关键工作负载迁移到 Ampere Altra Max 云原生处理器上,不仅能显著降低能耗和减少数据中心占地面积,还能保证应用程序性能不受影响




审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    18275

    浏览量

    222157
  • 操作系统
    +关注

    关注

    37

    文章

    6284

    浏览量

    121876
  • 虚拟机
    +关注

    关注

    1

    文章

    855

    浏览量

    27376
  • HTTP接口
    +关注

    关注

    0

    文章

    21

    浏览量

    1625
  • 负载均衡器
    +关注

    关注

    0

    文章

    18

    浏览量

    2554

原文标题:技术文章 | 多架构部署:如何将 NGINX 前端迁移至 HPE ProLiant RL300?

文章出处:【微信号:AmpereComputing,微信公众号:安晟培半导体】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    宝界科技WEB服务器立体防御解决方案

    利用脚本实施注入式攻击 跨平台全系列支持操作系统:支持Windows、Linux、UnixWeb服务器:支持IIS、Apache、J2EE 三、 宝界网站防篡改WEB应用防火墙系统网络部署拓扑图网络层
    发表于 05-17 14:01

    宝界科技WEB服务器立体防御解决方案

    利用脚本实施注入式攻击 跨平台全系列支持操作系统:支持Windows、Linux、UnixWeb服务器:支持IIS、Apache、J2EE 三、 宝界网站防篡改WEB应用防火墙系统网络部署拓扑图网络层
    发表于 08-19 11:02

    Labview与Web(二)---------------Web 服务器(原创)

    本帖最后由 欢乐的小周 于 2015-4-20 23:13 编辑 Web 服务器不知道为什么关于web服务器的教程这么少,总结一下这几天来学习的经验,小弟才疏学浅,有哪些不对的地
    发表于 04-20 18:14

    Labview与Web(二)---------------Web 服务器(原创)

    Web 服务器不知道为什么关于web服务器的教程这么少,总结一下这几天来学习的经验,小弟才疏学浅,有哪些不对的地方,需要改进,还请告知,谢谢。版本:labview 2014/2013
    发表于 04-20 18:15

    labview Web服务器如何启动?

    labview利用web服务器发布网页时,想在浏览中预览时无法启动web服务器
    发表于 04-12 07:59

    基于Linux的WEB服务器增加了哪些功能?

    嵌入式 WEB服务器的主要设计思想就是将嵌入式系统和 WEB技术结合起来,将 WEB技术引入到现场测量和控制设备中,从而实现基于嵌入式
    发表于 09-03 06:13

    服务器部署记录

    记录一下最近部署服务器的相关配置(常用的linuxcentos配置)
    发表于 10-24 14:32

    WEB服务器问题求助

    如图片所示,工具--选项--WEB服务器,打开后这样的,是什么原因?是缺少了什么插件么?还是安装软件的时候没安装好?谢谢!
    发表于 02-29 22:01

    大型机、小型机、x86服务器的区别 精选资料分享

    大型机、小型机、x86服务器的区别  首先来讲x86服务器,与平常人们所接触的台式机笔记本类似,采用CISC架构处理。随着英特尔至强处理
    发表于 07-28 06:19

    Tomcat服务器简介

    简介简介Tomcat服务器是一个开放源码的轻量级Web应用服务器,非常适合搭建微服务应用。Embedded Tomcat嵌入式Tomcat服务器
    发表于 12-16 08:24

    如何在web服务器的基础上加一个DNS服务器

    简介参考一中已经原理讲的很简单,这里不在赘述,大体意思就是在web服务器的基础上加上一个DNS服务器。参考二中的wifi有时连接不稳定、而且需要自己打开浏览
    发表于 02-10 06:52

    基于Linux的WEB服务器的设计与实现

    基于Linux的WEB服务器的设计与实现 嵌入式WEB服务器的主要设计思想就是将嵌入式系统和 WEB技术结合起来,将
    发表于 10-06 08:30 2942次阅读
    基于Linux的<b class='flag-5'>WEB</b><b class='flag-5'>服务器</b>的设计与实现

    如何辨别Web服务器,应用程序服务器,HTTP服务器

    强大的J2EE功能,毫无疑问是绝对的应用服务器。对于处于中间位置的Tomcat,它可以配合纯Web服务器Apache一起使用,也可以作为应用服务器的辅助与应用
    发表于 11-10 14:28 962次阅读

    服务器如何部署web项目,一起来看看吧

    我们在购买了云服务器后怎么使用?是当个网络U盘存储文件,还是用来搭建网站,提供网路服务?其实是都可以的,不过更多的用途是用于作为网站的服务器来使用,那如何在云服务器
    的头像 发表于 07-07 17:21 7325次阅读

    HPE正式发布搭载Ampere云原生处理器的HPE ProLiant RL300 Gen11平台

    RL300 Gen11 平台。这标志着 HPE 的全球客户现在可以使用全球首款云原生处理器,该处理器可为各种应用提供行业领先的性能和卓越的能效。
    的头像 发表于 07-13 11:40 1836次阅读