CN111796859A - 一种基于Nginx的项目动态发布方法及装置 - Google Patents

一种基于Nginx的项目动态发布方法及装置 Download PDF

Info

Publication number
CN111796859A
CN111796859A CN202010578158.2A CN202010578158A CN111796859A CN 111796859 A CN111796859 A CN 111796859A CN 202010578158 A CN202010578158 A CN 202010578158A CN 111796859 A CN111796859 A CN 111796859A
Authority
CN
China
Prior art keywords
nginx
port
upstream
upstream configuration
ports
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202010578158.2A
Other languages
English (en)
Inventor
刘兴军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Zhongyan Network Technology Co ltd
Original Assignee
Shanghai Zhongyan Network Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Zhongyan Network Technology Co ltd filed Critical Shanghai Zhongyan Network Technology Co ltd
Priority to CN202010578158.2A priority Critical patent/CN111796859A/zh
Publication of CN111796859A publication Critical patent/CN111796859A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本申请公开了一种基于Nginx的项目动态发布方法及装置。所述方法包括:在Web服务器中,预备多个配置完成的upstream配置文件,通过引用外部的upstream文件配置负载均衡,应用服务通过控制端口启停,根据当前启动的端口来确定使用对应的upstream配置文件,从而通过切换upstream配置文件,重启Nginx软件,来实现项目的动态发布。所述装置包括:Web服务器与应用服务器。本申请在路由不变的情况下,减少项目运维操作;整个发布流程可以脚本化,避免人工介入过多的误操作,提高发布效率。

Description

一种基于Nginx的项目动态发布方法及装置
技术领域
本申请涉及服务器运维技术领域,具体而言,涉及一种基于Nginx的项目动态发布方法及装置。
背景技术
目前,Nginx是一种高性能的HTTP(HyperText Transfer Protocol,超文本传输协议)和反向代理服务器,是业界常用的负载均衡软件,通过负载均衡策略给后端应用服务器分发请求。一般项目发布运维,都是需要更新应用程序的配置文件,替换到Nginx的配置文件里,需要手动重启程序或手动重新加载配置,最后重启Nginx软件生效。这样每次都需要人工进行操作,不但错误率高而且效率很低。
针对相关技术中更新配置文件需要人工进行操作,导致错误率高、效率低的问题,目前尚未提出有效的解决方案。
发明内容
本申请的主要目的在于提供一种基于Nginx的项目动态发布方法及装置,以解决相关技术中更新配置文件需要人工进行操作,导致错误率高、效率低的问题。
为了实现上述目的,第一方面,本申请提供了一种基于Nginx的项目动态发布方法,包括:
在Web服务器中,预备多个配置完成的upstream配置文件,通过引用外部的upstream文件配置负载均衡,应用服务通过控制端口启停,根据当前启动的端口来确定使用对应的upstream配置文件,从而通过切换upstream配置文件,重启Nginx软件,来实现项目的动态发布。
所述upstream配置文件:在Web服务器准备多个upstream配置文件;通过引用文件方式导入所述upstream配置文件,将所述upstream配置文件映射到应用服务器对应端口中。
所述应用服务器,完成如下操作:
在应用服务器中准备用于启动多个端口的启动脚本;
确定当前使用的端口,记作第一端口,应用服务器中的服务代码备份后,更新代码,启动另一组端口的相关进程,记作第二端口;
确定应用服务器已经切到所述第二端口对应的进程后,停掉第一端口对应的进程;
所述Web服务器,完成如下操作:
确定所述第二端口的所有进程正常启动后,Web服务器使用对应第二端口的upstream配置文件进行替换。
所述应用服务器中的服务是无状态的,通过多进程绑定多个端口,每一个端口对应绑定一个进程。
所述Web服务器是使用Nginx代理请求到内网的应用服务器,且配置文件是通过引用外部的upstream配置来配置负载。
所述端口,针对各组端口进程编写有独立的upstream配置文件,方便服务切换时使用。
所述upstream配置文件内容是固定的,仅所对应的端口不一样。
第二方面,本申请还提供了一种基于Nginx的项目动态发布装置,包括:Web服务器、应用服务器;
所述Web服务器,用来预备多个配置完成的upstream配置文件,通过引用外部的upstream文件配置负载均衡;
所述应用服务器,通过控制端口启停,根据当前启动的端口来确定使用对应的upstream配置文件。
一种电子设备,所述电子设备包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序以使计算机设备执行所述的基于Nginx的项目动态发布方法。
一种可读存储介质,所述可读存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行所述的基于Nginx的项目动态发布方法。
有益技术效果:
本申请是在路由不变的情况下,减少项目运维操作;整个发布流程可以脚本化,避免人工介入过多的误操作,提高发布效率。
附图说明
构成本申请的一部分的附图用来提供对本申请的进一步理解,使得本申请的其它特征、目的和优点变得更明显。本申请的示意性实施例附图及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例提供的一种基于Nginx的项目动态发布方法的示意图;
图2是根据本申请实施例提供的一种基于Nginx的项目动态发布方法流程图;
图3是根据本申请实施例提供的基于Nginx的项目动态发布方法运行结果。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本申请中,术语“上”、“下”、“左”、“右”、“前”、“后”、“顶”、“底”、“内”、“外”、“中”、“竖直”、“水平”、“横向”、“纵向”等指示的方位或位置关系为基于附图所示的方位或位置关系。这些术语主要是为了更好地描述本申请及其实施例,并非用于限定所指示的装置、元件或组成部分必须具有特定方位,或以特定方位进行构造和操作。
并且,上述部分术语除了可以用于表示方位或位置关系以外,还可能用于表示其他含义,例如术语“上”在某些情况下也可能用于表示某种依附关系或连接关系。对于本领域普通技术人员而言,可以根据具体情况理解这些术语在本申请中的具体含义。
另外,术语“多个”的含义应为两个以及两个以上。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
第一方面,本申请提供了一种基于Nginx的项目动态发布方法,如图1所示,包括:在Web服务器中,预备多个配置完成的upstream配置文件,通过引用外部的upstream文件配置负载均衡,应用服务通过控制端口启停,根据当前启动的端口来确定使用对应的upstream配置文件,从而通过切换upstream配置文件,重启Nginx软件,来实现项目的动态发布。
一种基于Nginx的项目动态发布方法,如图2所示,流程如下:
步骤S1:在Web服务器准备多个upstream配置文件:upstream_7000.conf,upstream_7100.conf;
步骤S2:通过引用文件方式导入所述upstream配置文件,将所述upstream配置文件映射到应用服务器对应端口中;
步骤S3:在应用服务器中准备用于启动多个端口的启动脚本:pubish_7000.sh,publish_7100.sh;
步骤S4:确定当前使用的端口,比如:7000,记作第一端口,应用服务器中的服务代码备份后,更新代码,启动另一组端口7100的相关进程,记作第二端口;
步骤S5:确定所述第二端口7100的所有进程正常启动后,Web服务器使用对应第二端口7100的upstream配置文件进行替换;
步骤S6重启Ngin软件;
步骤S7:确定应用服务器已经切到所述第二端口7100对应的进程后,停掉第一端口7000对应的进程;
步骤S8:发布完成。
具体操作举例如下:
进入Nginx目录;
将bak_upstream下的pro2.wenjuan.com.upstream_7x00.conf覆盖到upstream下的pro.wenjuan.com.upstream.conf;
应用服务器启动7x00相关进程;
Nginx reload;
结束,运行结果如图3所示。
所述应用服务器中的服务是无状态的,通过多进程绑定多个端口,每一个端口对应绑定一个进程。
所述Web服务器是使用Nginx代理请求到内网的应用服务器,且配置文件是通过引用外部的upstream配置来配置负载。
所述端口,针对各组端口进程编写有独立的upstream配置文件,方便服务切换时使用。
所述upstream配置文件内容是固定的,仅所对应的端口不一样。
第二方面,本申请还提供了一种基于Nginx的项目动态发布装置,包括:Web服务器、应用服务器;
所述Web服务器,用来预备多个配置完成的upstream配置文件,通过引用外部的upstream文件配置负载均衡;
所述应用服务器,通过控制端口启停,根据当前启动的端口来确定使用对应的upstream配置文件。
一种电子设备,所述电子设备包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序以使计算机设备执行所述的基于Nginx的项目动态发布方法。
一种可读存储介质,所述可读存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行所述的基于Nginx的项目动态发布方法。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (10)

1.一种基于Nginx的项目动态发布方法,其特征在于,包括:在Web服务器中,预备多个配置完成的upstream配置文件,通过引用外部的upstream文件配置负载均衡,应用服务通过控制端口启停,根据当前启动的端口来确定使用对应的upstream配置文件,从而通过切换upstream配置文件,重启Nginx软件,来实现项目的动态发布。
2.如权利要求1所述的基于Nginx的项目动态发布方法,其特征在于,所述upstream配置文件:在Web服务器准备多个upstream配置文件;通过引用文件方式导入所述upstream配置文件,将所述upstream配置文件映射到应用服务器对应端口中。
3.如权利要求1所述的基于Nginx的项目动态发布方法,其特征在于,所述应用服务器,完成如下操作:
在应用服务器中准备用于启动多个端口的启动脚本;
确定当前使用的端口,记作第一端口,应用服务器中的服务代码备份后,更新代码,启动另一组端口的相关进程,记作第二端口;
确定应用服务器已经切到所述第二端口对应的进程后,停掉第一端口对应的进程。
4.如权利要求1所述的基于Nginx的项目动态发布方法,其特征在于,所述Web服务器,完成如下操作:
确定所述第二端口的所有进程正常启动后,Web服务器使用对应第二端口的upstream配置文件进行替换。
5.如权利要求3所述的基于Nginx的项目动态发布方法,其特征在于,所述应用服务器中的服务是无状态的,通过多进程绑定多个端口,每一个端口对应绑定一个进程。
6.如权利要求4所述的基于Nginx的项目动态发布方法,其特征在于,所述Web服务器是使用Nginx代理请求到内网的应用服务器。
7.如权利要求2或3或4或5所述的基于Nginx的项目动态发布方法,其特征在于,所述端口,针对各组端口进程编写有独立的upstream配置文件。
8.一种基于Nginx的项目动态发布装置,使用如权利要求1-7所述的基于Nginx的项目动态发布方法实现,其特征在于,包括:Web服务器、应用服务器;
所述Web服务器,用来预备多个配置完成的upstream配置文件,通过引用外部的upstream文件配置负载均衡;
所述应用服务器,通过控制端口启停,根据当前启动的端口来确定使用对应的upstream配置文件。
9.一种电子设备,其特征在于,所述电子设备包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序以使计算机设备执行根据权利要求1-7任一项所述的基于Nginx的项目动态发布方法。
10.一种可读存储介质,其特征在于,所述可读存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行权利要求1-7任一项所述的基于Nginx的项目动态发布方法。
CN202010578158.2A 2020-06-22 2020-06-22 一种基于Nginx的项目动态发布方法及装置 Pending CN111796859A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010578158.2A CN111796859A (zh) 2020-06-22 2020-06-22 一种基于Nginx的项目动态发布方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010578158.2A CN111796859A (zh) 2020-06-22 2020-06-22 一种基于Nginx的项目动态发布方法及装置

Publications (1)

Publication Number Publication Date
CN111796859A true CN111796859A (zh) 2020-10-20

Family

ID=72804261

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010578158.2A Pending CN111796859A (zh) 2020-06-22 2020-06-22 一种基于Nginx的项目动态发布方法及装置

Country Status (1)

Country Link
CN (1) CN111796859A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113760311A (zh) * 2021-08-25 2021-12-07 山东浪潮通软信息科技有限公司 一种微服务部署方法、设备及介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101539897A (zh) * 2008-03-21 2009-09-23 安国国际科技股份有限公司 多计算机切换装置及其运行方法
US20100306425A1 (en) * 2008-02-13 2010-12-02 Belkin International, Inc. Switching Device Configured to Couple a First Computer to a First Peripheral Device and One or More Second Peripheral Devices and Method of Manufacturing Same
CN109445771A (zh) * 2018-10-25 2019-03-08 北京和普威视科技股份有限公司 一种cs架构下网络层模块代码自动生成工具及方法
CN110727653A (zh) * 2019-10-12 2020-01-24 广州华多网络科技有限公司 多项目负载均衡方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100306425A1 (en) * 2008-02-13 2010-12-02 Belkin International, Inc. Switching Device Configured to Couple a First Computer to a First Peripheral Device and One or More Second Peripheral Devices and Method of Manufacturing Same
CN101539897A (zh) * 2008-03-21 2009-09-23 安国国际科技股份有限公司 多计算机切换装置及其运行方法
CN109445771A (zh) * 2018-10-25 2019-03-08 北京和普威视科技股份有限公司 一种cs架构下网络层模块代码自动生成工具及方法
CN110727653A (zh) * 2019-10-12 2020-01-24 广州华多网络科技有限公司 多项目负载均衡方法和装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
DSS_LIUHL: "动态upstream切换", 《HTTPS://GITHUB.COM/HUGOREN/NGX_UPSTREAM/COMMIT/1D235426C50C74A823491169B0E9C763B9175E15》 *
稀土掘金: "Nginx动态发现方案与实践", 《HTTPS://WWW.MDEDITOR.TW/PL/2C71》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113760311A (zh) * 2021-08-25 2021-12-07 山东浪潮通软信息科技有限公司 一种微服务部署方法、设备及介质

Similar Documents

Publication Publication Date Title
US20100088448A1 (en) Virtual computing accelerator and program downloading method for server-based virtual computing
US20120130950A1 (en) Data replication to multiple data nodes
CN105589701B (zh) 一种客户端应用程序局部更新方法及装置
CN100527081C (zh) 实现数据升级的计算机处理***和数据升级方法
CN109391655A (zh) 服务灰度发布方法、装置、***及存储介质
TW201229795A (en) Web service patterns for globally distributed service fabric
CN109284205A (zh) 快照备份方法、装置、计算机设备及存储介质
CN106960054B (zh) 数据文件的存取方法及装置
CN109033328A (zh) 一种访问请求处理方法、装置、设备及可读存储介质
CN101115180B (zh) 一种电子节目菜单***及其功能模块动态加载运行方法
CN111796859A (zh) 一种基于Nginx的项目动态发布方法及装置
JP6024448B2 (ja) 情報処理プログラム、情報処理方法及び装置
CN109376033A (zh) 快照备份方法、装置、计算机设备及存储介质
CN106201584B (zh) 版本升级方法及终端设备
US10142415B2 (en) Data migration
CN113535346B (zh) 线程数量调整的方法、装置、设备及计算机存储介质
CN112035183A (zh) 微应用的接入方法及装置
CN101373464B (zh) 自动调用表格设置的方法、装置及***
US20190188036A1 (en) Computer system and program migration method
CN116302328A (zh) 智能合约数据处理方法和***
JP3119166B2 (ja) ネットワークシステムのソフトウェア・バージョン管理方式
CN110209431B (zh) 数据分区拆分方法及装置
CN113867955A (zh) 一种服务发现方法、装置、设备及存储介质
JP2530629B2 (ja) プログラム更新制御システム
JP4595892B2 (ja) データベース管理システム構築方法、装置、プログラム及び記録媒体

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20201020