M2实现Nodejs项目自动部署

PM2实现Nodejs项目自动部署首先简单说下思路:本地git仓库与远程仓库关联(github、码云等平台),然后pm2按照指定配置登录服务器,拉取远程仓库的代码更新,再执行一些指定的命令(如打包等)。 创建本地项目并关联到远程仓库本地新建名为web的项目,进入项目并创建一个简单的Nodejs文件app.js,mkdir web && cd webvi app.js文件内容编辑如下,完成后保存退出:wq!。 // app.sconst http = require('http');const homePage = `<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <style type="text/css"> * { padding: 0; margin: 0; } body { padding: 30px 0; text-align: center; font-size: 16px; background-color: #333; } h1,h2 { color: #fff; } nav { margin-top: 20px; } a { color: #ccc; cursor: pointer; } a:hover { text-decoration: underline; } </style></head><body> <h1>Nodejs部署示例项目</h1> <h2>项目部署上线示例</h2> <nav> <ul> <li><a>列表</a></li> </ul> </nav></body></html>`http.createServer((req,res) => { res.statusCode = 200; res.setHeader('Content-Type','text/html'); res.end(homePage);}).listen(3000, () => { console.log('Sever Running On 3000:');})把本地项目放到远程仓库,可选Github或者码云等平台。首先查看本地是否生成过.ssh目录及目录下是否有私钥及公钥文件ls ~/.ssh如果存在,跳到下一步。如果不存在id_rsa、id_rsa.pub文件,需要先生成一下:"youemail"填写你的邮箱ssh-keygen -t rsa -C "youremail"查看本地公钥的内容并复制内容添加到远程仓库cat ~/.ssh/id_rsa.pub本地仓库关联远程仓库的其他操作这里就不赘述。服务器从远程仓库拉取项目服务器环境:阿里云的ecs,系统是Ubuntu 14.06这一步后面是不需要手动操作的,但我们要做好配置,这里可以先手动拉取远程代码测试一下是否配置成功。 ...

May 3, 2019 · 1 min · jiezi

Nacos系列:Nacos的三种部署模式

三种部署模式Nacos支持三种部署模式1、单机模式:可用于测试和单机使用,生产环境切忌使用单机模式(满足不了高可用)2、集群模式:可用于生产环境,确保高可用3、多集群模式:可用于多数据中心场景单机模式启动 Nacos ServerLinux:sh startup.sh -m standaloneWindows:cmd startup.cmd -m standalone 或 双击 startup.cmd 启动关闭 Nacos ServerLinux:sh shutdown.shWindows:cmd shutdown.cmd 或 双击 shutdown.cmd 启动在0.7版本之前,Nacos使用的是嵌入式数据库Derby (Apache Derby)来存储数据;0.7版本,增加了对mysql数据源的支持。Derby数据源内嵌的数据库,通过命令直接启动即可,无需额外安装。startup.cmd -m standaloneMySQL数据源步骤一:安装MySQL数据,版本要求:5.6.5+步骤二:初始化数据库创建数据库create database if not exists nacos default charset utf8 collate utf8_general_ci;初始化数据库在nacos server解压目录conf下,找到 nacos-mysql.sql 文件,直接执行,执行完成后,用Navicat客户端查看步骤三:修改conf/application.properties文件,添加如下信息## mysql datasourcespring.datasource.platform=mysql db.num=1db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=truedb.user=rootdb.password=123456注意:spring.datasource.platform=mysql别漏了,要不然还是使用Derby数据库。步骤四:启动 Nacos Server启动成功后,我们使用上一篇博客:《Nacos系列:Nacos的Java SDK使用》中的案例来验证,运行NacosConfig,观察数据表的内容变化,示例知行后,config_info表和his_config_info表都会有和配置相关的数据,如下图所示:似乎Nacos的MySQL数据源只存储了配置数据,服务列表和注册的服务实例信息并不会出现在数据表中(通过运行示例中的NacosDiscovery类main()方法,就可以观察到该现象)集群模式资源有限,我直接在Windows上模拟部署搭建“伪集群”, 新建一个文件目录NacosCluster,将Nacos Server解压三份到该目录下,分别命名为nasosSlave0、nasosSlave1、nasosSlave2,分配端口:8845、8846、8847修改nasosSlave0/conf/application.properties,server.port=8845,并添加## mysql datasourcespring.datasource.platform=mysql db.num=1db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=truedb.user=rootdb.password=123456这里先使用一个MySQL库演示功能,实际生产上至少要使用主备模式,例如:db.num=2db.url.0=jdbc:mysql://127.0.0.1:3306/nacos1?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=truedb.url.1=jdbc:mysql://127.0.0.1:3306/nacos2?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=truedb.user=rootdb.password=123456拷贝nasosSlave0/conf/cluster.conf.example为cluster.conf,修改内容如下:127.0.0.1:8845127.0.0.1:8846127.0.0.1:8847nasosSlave1、nasosSlave2 和 nasosSlave0 除了端口不同外,其它配置保持一致。分别启动每台 Nacos Serverstartup.cmd -m cluster注意:在Windows下,这个时候不能再双击startup.cmd启动了,如果这样启动仍然是以单机模式运行,因为在bin/startup.cmd中有下面这段代码:if not “%2” == “cluster” ( set “JAVA_OPT=%JAVA_OPT% -Xms512m -Xmx512m -Xmn256m” set “JAVA_OPT=%JAVA_OPT% -Dnacos.standalone=true” ) else ( set “JAVA_OPT=%JAVA_OPT% -server -Xms2g -Xmx2g -Xmn1g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m” set “JAVA_OPT=%JAVA_OPT% -XX:-OmitStackTraceInFastThrow XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=%BASE_DIR%\logs\java_heapdump.hprof” set “JAVA_OPT=%JAVA_OPT% -XX:-UseLargePages” )观察控制台,启动成功后,在控制台可以看到如下信息:E:\Software\Nacos\nacosCluster\nacosSlave0\bin>startup.cmd -m cluster ,–. ,–.’| ,–,: : | Nacos 0.8.0,--.'| ’ : ,—. Running in cluster mode| : : | | ’ ,’\ .–.–. Port: 8845: | \ | : ,–.–. ,—. / / | / / ’ Pid: 6568| : ’ ‘; | / \ / . ; ,. :| : /./ Console: http://192.168.1.102:8845/nacos/index.html' ' ;. ;.--. .-. | / / '' | |: :| : ;_| | | \ | \__\/: . .. ' / ' | .; : \ \ . https://nacos.io’ : | ; .’ ," .–.; |’ ; :__| : | ----. \| | '–’ / / ,. |’ | ‘.’|\ \ / / /--' /' : | ; : .' \ : : —-’ ‘–’. /; |.’ | , .-./\ \ / --'---''---' –---' —-‘2019-02-20 23:06:13,059 INFO The server IP list of Nacos is [127.0.0.1:8845, 127.0.0.1:8846, 127.0.0.1:8847]2019-02-20 23:06:14,185 INFO Nacos is starting…2019-02-20 23:06:15,409 INFO Nacos is starting…2019-02-20 23:06:16,512 INFO Nacos is starting…2019-02-20 23:06:17,605 INFO Nacos is starting…2019-02-20 23:06:18,736 INFO Nacos is starting…2019-02-20 23:06:19,860 INFO Nacos is starting…2019-02-20 23:06:21,021 INFO Nacos is starting…2019-02-20 23:06:22,230 INFO Nacos is starting…2019-02-20 23:06:23,390 INFO Nacos is starting…2019-02-20 23:06:24,605 INFO Nacos is starting…2019-02-20 23:06:25,991 INFO Nacos is starting…2019-02-20 23:06:26,993 INFO Nacos is starting…2019-02-20 23:06:28,197 INFO Nacos is starting…2019-02-20 23:06:29,264 INFO Nacos is starting…2019-02-20 23:06:30,515 INFO Nacos is starting…2019-02-20 23:06:31,810 INFO Nacos is starting…2019-02-20 23:06:32,934 INFO Nacos is starting…2019-02-20 23:06:33,976 INFO Nacos is starting…2019-02-20 23:06:35,044 INFO Nacos is starting…2019-02-20 23:06:36,153 INFO Nacos is starting…2019-02-20 23:06:37,290 INFO Nacos is starting…2019-02-20 23:06:38,616 INFO Nacos is starting…2019-02-20 23:06:39,736 INFO Nacos is starting…2019-02-20 23:06:40,824 INFO Nacos is starting…2019-02-20 23:06:41,757 INFO Nacos Log files: E:\Software\Nacos\nacosCluster\nacosSlave0/logs/2019-02-20 23:06:41,768 INFO Nacos Conf files: E:\Software\Nacos\nacosCluster\nacosSlave0/conf/2019-02-20 23:06:41,771 INFO Nacos Data files: E:\Software\Nacos\nacosCluster\nacosSlave0/data/2019-02-20 23:06:41,774 INFO Nacos started successfully in cluster mode.在浏览器分别访问如下路径http://localhost:8845/nacoshttp://localhost:8846/nacoshttp://localhost:8847/nacos如果都能访问成功,证明集群模式部署成功。多集群模式Nacos支持NameServer路由请求模式,通过它您可以设计一个有用的映射规则来控制请求转发到相应的集群,在映射规则中您可以按命名空间或租户等分片请求(From Nacos官网)其他说明据Nacos官方宣称,Nacos v0.8.0 Pre-GA版本已经可以用于生产环境,在此之前的版本,请勿在生产上使用。参考资料部署手册集群部署说明推荐阅读Nacos系列:欢迎来到Nacos的世界!Nacos系列:基于Nacos的注册中心Nacos系列:基于Nacos的配置中心Nacos系列:Nacos的Java SDK使用 ...

February 23, 2019 · 2 min · jiezi

在Linux Debian 8下部署基于PHP的Web项目。

折腾了大半天,总算把项目部署到了服务器上,这里写一篇文章记录一下,当作做学习笔记,同时也给其他想要部署项目的朋友一点思路。目前Linux系统的分支比较多,我了解到的目前分为Debian、Ubuntu等和RedHat、centnOS等。他们的主要操作命令都一样,个别会有所区别,所以这个教程可能不太适用于centOS等一些系统,但应该有参考价值!一、概览和准备工作我的项目是一个简单的手机商城,前端就是HTML+CSS+JS,外加一个Jquery,只适配了PC端。后端使用了PHP和MySql。所以在服务器上就需要LAMP环境(我们常说的Linux+Apache+MySql+PHP,其他的还有LNMP环境,就是Web服务器换成Nginx)。必要的准备工作Xshell+Xftp软件一个云服务器已经完成的项目代码和数据库数据二、购买云服务器目前国内有很多提供商,阿里、腾讯云等等,大家买的时候可以买境外的,比如香港,这个不用备案(备案要花一定时间),自己斟酌就好。我目前买的Vultr的。服务器的购买大家在网上就可以找到答案,这里就不在做篇幅讲解了!三、下载Xshell和XftpXshell用来连接服务器进行操作的,Xftp用来传项目到服务器。目前连接服务器和上传文件有很多种,这里我选了简单些的,其他方法大家可以去找找。这里我给一个度盘地址给大家,下载下来安装好即可。Xshell和Xftp 提取码:mcnl

February 16, 2019 · 1 min · jiezi