奇妙奇闻

探索世界奇闻,未解之谜

首页 > 科学探索 > 运行在阿里云ECS上的PHP-FPM+Nginx

运行在阿里云ECS上的PHP-FPM+Nginx

时间:2019-01-25 11:40:19 作者:迷迷 来源:奇妙奇闻 手机阅读

集装箱码头出现后,集装箱技术在互联网领域得到空前的普及。无论是大公司还是钓市初创公司,农民基本上都会在各种技术社区或各种演讲会上学习相关技术。作为一个跳楼创业公司,我们也不例外。去年,我们做了一些关于Docker.Solution的事情,一年前测试了一些程序,今天我总结了在践踏坑的过程中遇到的坑和一些想法,希望能给认识Docker并渴望尝试的人一些启示。当然,在这方面有丰富经验的学生更欢迎提出一些建议或建议。  

我们项目的标准PHP技术栈:PHP-FPM+Nginx运行在阿里云的ECS上,数据库也是阿里云的服务。  

从理论上讲,对于一般的刁丝创投公司的刁丝项目来说,没有必要使用过于复杂的技术,对新技术的约束也是大农的职业道德。在项目上线以来遇到的各种问题中,如上一篇文章中提到的laravel的性能问题,而HHVM或PHP7,这些新技术都提到性能,所有的突然切换风险都太大,因此可以使用Container运行一些服务测试;例如,以前有一个BUG,一个接口问题占用了太多的内存,导致系统响应超时;例如,在看过其他人在各种技术会议上共享的经验之后,我真的很想自己尝试一下。  

blob.png

根据Docker的哲学,每个容器都是一个独立的服务,服务通过接口相互协作,采用的方案是PHP-FPM和Nginx分别在不同的容器中运行,PHP-FPM容器将端口暴露给Nginx容器。  

容器之间的网络通信最初使用Docker自己的链接。虽然链接很简单,但它不是很有用。Link是通过在启动容器时修改/ETC/HOST文件来实现的。当时遇到的一个问题是,容器的IP在通过链接重新启动之后发生了变化,但是容器中没有链接。还有一个问题是,当同一个服务需要打开多个容器时,当然,如果它以集群方式运行,则更加困难,因此链接只能在本地开发、本地开发中发挥作用。领事做服务发现。领事不在这里介绍。感兴趣的学生可以阅读这篇文章:使用领事和注册官为码头集装箱服务发现(https:www.livewyer.comblog201502service-discovery-docker-containers-u)。  

然后放在主机,和代码的目录是安装在容器启动。根据所使用的接口方案,接口分为几个不同的容器中运行,和资源隔离的应力进行了测试。符合预期,很满意。然后,我们选择了两个容器运行hhvm测试和性能真的提高了很多。整体结构如下图所示:  

这可以正常使用,然后处理日志。首先,主机上安装了一个目录来存储日志,但这与Docker的想法不太一致。所以我们得到了一个LogStash容器,并把各种容器的日志写入LogSTASH容器中。  

然后我们监控集装箱。我们使用ONAPM服务,这并不坏。还有其他开源工具可供选择,但使用ONAPM服务更方便。  

一个完整的技术堆栈已经建立,运行几天没有问题。当然,作为搜索者,有更高的要求。后来,我想到了一个问题:Docker的想法是容器是一个完整的服务,但是我们使用的是在容器中运行PHP-FPM,代码不在容器中,而是通过目录安装来实现这一点。追求完美:完美之路  

事实上,把代码放入容器不仅仅是为了思想的完美,而且为了另一个目的:基于DOCKER的CI。基本的想法是每一个版本都建立了一个新的图像版本。在编译过程中,代码需要更新到最新版本,然后安装依赖的第三方库和其他与业务相关的预处理。构建完成后,推到注册表,然后在每个节点下拉,重新启动容器。整个过程  

怎么样这是完美的。如果现实是如此完美,但现实总是会有各种各样的坑等待着你!  

首先,在使用这个机制之前,发布代码、合并分支只需几秒钟,然后在每个节点下拉代码。但是在使用DOCKER之后,合并分支需要建立一个镜像,建立一个推送寄存器,然后把镜面拉到每个节点,更不用说说了。它还需要几分钟。此时,一些学生可能会说DOCKER镜像的原理不是层机制。是的,是层。每个构建只需要更新需要更新的层,但是仍然没有办法只更新那些像Git之类的文件,至少更新整个项目的代码目录。  

其次,我们之前只需要更新代码,但现在我们需要重新启动容器。最初,重新启动容器非常快,但是PHP-FPM在容器中运行非常慢。我猜它会发送一个SigTalk的信号到集装箱的过程中,当DOCKER停止执行。PHP-FPM在处理SIGTERM信号时会做一些清理工作,节点至少有几十个容器,每个容器都会重新启动,这很耗时。  

在使用完美机制之后,这种简单的发布需要几分钟。尽管整个过程是完全自动的,但是没有必要在完美理念上妥协。  

此外,还有一个非常奇怪的问题:当容器升级到1.10时,在容器启动后经常会遇到端口不可通行。此时,如果您进入容器发起一个网络请求,如IP低于ping时,端口将恢复正常。长期使用各种工具进行调试,仍然没有发现问题所在,DiaosiPioneer公司也没有精力研究这样一个深奥的探索。莱姆,不得不暂时搁置一段时间。  

虽然没有理想的完美解决方案,但是也使整个框架更加方便扩展,比如在交通高峰期快速上架的节点。由于近年来云计算的发展,这个问题也更容易解决。ODE放置在主机目录中,所以基本上每个主机只需要三个条件就可以上网:  

在购买ECS之后,完成上述操作以生成系统映像,当新节点需要联机时,该系统映像可以直接用于配置服务器。已被领事提及。  

DOCKER群将用于未来的集群管理。当对调度的需求很大时,可以尝试使用Mesos或Kubernetes。然而,集装箱的生态链发展很快,在需要时可能有更好的解决方案。  

简单地概括整个感知过程,从体系结构的角度来看,永远不会有完美的体系结构,只有最适合自己的体系结构。团队对各种技术的理解以及技术选择的复杂性。不要看几个牛分享他们的技术架构,而是急于尝试他们自己的项目。最后,即使他们做不到,也会给其他人留下一团糟去清理。最后,在迭代过程中保持项目简单的能力始终是衡量代码农民技术水平的一个重要标准。  


相关文章

  • 世界第一颗人造卫星:斯普特尼克一号(1957年苏联发射)
    世界第一颗人造卫星:斯普特尼克一号(1957年苏联发射)
    我们都知道中国第一颗人造卫星是东方红一号卫星,那么大家知道世界第一颗人造卫星叫什么吗?它是哪个国家发射成功的呢?接下来大家就跟着小编一起去看看吧。 世界第一颗人造卫星 世界第一颗人造卫星是斯普特尼克一号,1957年10月4日在苏联成功发射。 研发背景...
  • 中国第一颗人造卫星:东方红一号卫星(1970年4.24发射)
    中国第一颗人造卫星:东方红一号卫星(1970年4.24发射)
    之前小编给大家讲解了神舟十三号什么时候发射的情况,那么大家知道中国第一颗人造卫星是什么吗?接下来大家就跟着小编一起去看看吧。 中国第一颗人造卫星 中国第一颗人造卫星是东方红一号卫星,在1970年4月24日成功发射。 研发背景 1957年10月4日,苏联发射了...
  • 白暨豚:古老的孑遗生物,有“水中大熊猫”之称
    白暨豚:古老的孑遗生物,有“水中大熊猫”之称
    白暨豚是中国特有的一种小型淡水鲸,非常珍稀,甚至有水中大熊猫这样的称呼,这足以见到它的珍贵,不仅如此,它还是我国古老的孑遗生物,不过由于现代人类各方面迅速发展,导致了一系列的环境变化,现在我们已经很少能见到它们了,那么,就让我们一起来了解...
  • 汶川大地震是几级地震:里氏震级8.0级,矩震级8.3级
    汶川大地震是几级地震:里氏震级8.0级,矩震级8.3级
    由于我国是一个地震多发国,因此,每年都有着大大小小的地震发生,给那些地方造成很大的经济损失,就比如发生于2008年的地震,相关损失十分惨重,那么,汶川大地震的地震级别到底是几级呢?让我们一切来了解一下吧! 汶川大地震是几级地震 汶川大地震的震级是...
  • 蒙托克飞马火星计划,能穿越时空前往未来火星基地
    蒙托克飞马火星计划,能穿越时空前往未来火星基地
    在上个世纪八九十年代,美国有过许多的秘密实验,而蒙托克计划便是美国在探索时空穿越所执行的计划,据说这个实验不仅能够穿梭到过去,还能够穿越到未来,据说前美国总统奥巴马也参与过蒙托克飞马火星计划,曾两次穿越到美国未来的火星基地。 美国的时空穿梭...
  • 天狼星是否比太阳大?天狼星的质量是太阳多少倍
    天狼星是否比太阳大?天狼星的质量是太阳多少倍
    导语:大家都知道宇宙是非常辽阔的,星系什么的都很多。地球也好太阳也好都是其中微小的组成部分。天狼星是除了太阳之外天空中最亮的恒星,那么天狼星和地球相比哪一个更大呢?和就爱奇闻小编一起了解一下吧。 天狼星是否比太阳大 天狼星确实比太阳更大,虽然天...
  • 火星有生物存在过吗?气候极度寒冷空气稀薄(暂未发现)
    火星有生物存在过吗?气候极度寒冷空气稀薄(暂未发现)
    火星环境和早期地球比较类似,人们认为它在过去可能和地球一样存在生命,但是经历了某些变革之后生命毁灭了。不过根据目前的研究来看,火星的环境相当恶劣,似乎没有生命存在的痕迹。...
  • 冥王星为什么不是行星,冥王星降级原因/太瘦是关键
    冥王星为什么不是行星,冥王星降级原因/太瘦是关键
    对于冥王星,大家肯定不陌生,因为它是目前为止第一个降级的存在,在2006年被科学家从太阳系九大行星中除名。对此,许多新科谜很好奇:冥王星为什么不是行星?接下来小编将为大家解惑,并顺带告诉大家冥王星的卫星、冥王星温度等方面的知识,一起去看看吧!...
  • 气态行星是什么意思,气态行星有陆地吗/由氢气氦气组成
    气态行星是什么意思,气态行星有陆地吗/由氢气氦气组成
    在太阳系中,行星有很多种,出名的有八大行星,而在这里面,有一种存在令许多人好奇,那就是气态行星!很多朋友听到后,都好奇:气态行星是什么意思?气态行星有陆地吗?是不是整个行星都是气态?对此,就由小编为大家解惑。 一、气态行星是什么意思 说到气...
  • 土星有多少卫星,土星卫星比地球大吗/60多颗都比地球小
    土星有多少卫星,土星卫星比地球大吗/60多颗都比地球小
    在科学界,对于土星的探索一直都未停止,目前为止已发现很多颗土星卫星,通过对这些卫星的探测,科学家认为其中有适合人居住的星球!接下来,通过对土星有多少卫星、土星卫星比地球大吗等问题,我们一起去详细了解一下土星卫星。 一、土星有多少卫星,60多颗...

科学探索

热门文章

今日最新