linux上利用pm2和nginx部署项目
Introduce
在开发模式的时候,我们常用 nodemon 和 webpack 热更新nodejs项目(如express)和前端项目(如vue),但需要部署的时候我们就不能再用开发环境的配置了,需要改成生产环境配置。为了使得项目可以稳健的运行在服务端,node可以使用nohup启动,前端项目可以使用nginx代理。
但是为了更加规范管理,我们应该使用pm2来管理node项目。
nohup(不推荐使用)
作用:不挂断地运行命令。
启动后通过 ps -ef 可以查看进程和 pid,如果需要停止,输入
需要特别注意的是,退出远程时,要使用 exit 退出,直接关闭远程工具将会导致后台静默进程停止。
尽管nohup是内置工具,但万一服务抛异常,对外没有反应,表现为无端停止服务,对维护不友好。
pm2(推荐使用)
相比 nohup,pm2 更加合理,推荐使用 pm2 部署。
首先全局安装 pm2
为了方便,我们可以把 pm2 软链接到系统环境下(假设 pm2 安装路径是/usr/sbin/nodejs/bin/pm2),
最后在项目中添加 pm2 配置文件, processes.json
其中 name 代表进程别名,script 代表需要执行的命令,env 是注入到服务中的变量。
最后修改 package.json 的 start 命令(项目为 express )为
如果需要查看 pm2 状态,使用
表明通过 pm2 启动项目。
停止或重启服务使用
自动启动
在实际情况下,偶尔会发生服务器宕机,可是重启后pm2应用不会被自动启动,这时候我们就需要去保存我们的pm2状态,然后配置开机自启。
执行后会输出
这表示pm2把当前应用列表启动信息保存到了磁盘文件上
执行后输出
这表明pm2往系统中写入了开机启动任务,开机是自动启动上次pm2保存的应用列表
这时候如果想测试,可以手动重启服务器试一下,查看一下pm2应用任务是否正确启动
再也不用担心重启后服务不起了。
nginx
作为一个高性能的http和反向代理服务,在linux上不免要选用它。
安装教程
代理教程
对于Web而已,80端口和443端口是十分重要的,原则上需要输入 http://domain.com:80 才可以浏览网页的,但由于默认端口是80,所以‘:80’可以忽略。同理对于https的443端口也一样。
所以我们常常需要在80端口监听多个服务,这就必须要用上nginx的代理功能了。用法如下:
常规配置
代理配置
nginx如果检测到vue.msg.com的请求,将 转发 请求到本机的8080端口,如果检测到的是react.msg.com请求,也会将请求 转发 到8081端口。
同样的,如果前面用pm2开启了node项目,而且运行在3000端口,并且已经做好了域名映射,如(api.msg.com),我们可以同理配置代理
上面就是linux上部署项目的教程(后续介绍 docker部署 )。
11个让你吃惊的 Linux 终端命令
5. ‘在’特定的时间运行Linux命令 ‘nohup’命令在你用SSH连接到服务器,并在上面保持执行SSH登出前任务的时候十分有用。想一下如果你需要在特定的时间执行相同的命令,这种情况该怎么办呢?命令‘at’就能妥善解决这一情况。以下是‘at’使用示例。at 10:38 PM Fri at cowsay 'hello'at CTRL + D...
linux下通过nmap扫描目标主机开放了哪些端口
8、-PE\/PP\/PM 扫描类型的控制 1、sW (对滑动窗口的扫描)2、-sR(RPC扫描)3、 -PE; -PP; -PM (ICMP 类型的ping)4、-PR (ARP 类型的ping-n (无 DNS 解析)5、-R (为所有的目标做DNS解析)6、-sV(对服务版本的检测)常用的对主机的操作 1、-A或者-O(对操作系统的检测)2、-v(...
详解Linux系统中的日期设定与date命令的用法
当你以 root 身分更改了系统时间之后,请记得以 clock -w 来将系统时间写入 CMOS 中,这样下次重新开机时系统时间才会持续抱持最新的正确值。ntp时间同步 linux系统下默认安装了ntp服务,手动进行ntp同步如下 代码如下:ntpdate ntp1.nl.net当然,也能指定其他的ntp服务器 扩展功能 date 工具可以完成更多...
Linux怎样在某一特定时间执行命令(使用at”
3)能够采用12小时计时制,即在时间后面加上AM(上午)或PM(下午)来说明是上午还是下午。 例如:12pm 4)能够指定命令执行的具体日期,指定格式为month day(月 日)或mm\/dd\/yy(月\/日\/年)或dd.mm.yy(日.月.年),指定的日期必须跟在指定时间的后面。 例如:04:00 2009-03-1 5)能够使...
软件测试好开发中的TE、TM、PM、TD、DE 这些都是什么人员?
PL是项目组长,PM是项目经理,PT是项目测试人员,PG是项目编程人员。项目组长职责:配合项目经理工作,管理组内成员,完成小组计划工作。项目经理职责:全面掌管项目人员、进度,以及跟甲方沟通。项目测试人员职责:对项目编程人员开发的程序进行测试,发现隐藏BUG。项目编程人员:按照项目组长安排,进行项目开发...
Linux命令每天凌晨三点执行linux命令每天
上面的例子表示每周六、周日的1:10重启apache。0,3018-23***\/usr\/local\/etc\/rc.d\/lighttpdrestart 上面的例子表示在每天18:00至23:00之间每隔30分钟重启apache。023**6\/usr\/local\/etc\/rc.d\/lighttpdrestart 上面的例子表示每星期六的11:00pm重启apache。\/1***\/usr\/local\/etc\/rc.d\/lighttpd...
如何在linux系统下查看cpu使用率
Linux查看cpu使用率可以使用top命令。1、在终端输入top命令,如下图所示的位置即为cpu使用率。2、如果是多核cpu,要查看全部的cpu使用率,可以按数字键1,即可显示,如下图所示,显示的是四核cpu的使用率。
linux 24小时制 修改
vi ~\/.bashrc 输入alias date='date "+%a %b %d %H:%M:%S %Z %Y" ' 就是24小时制 输入alias date='date "+%a %b %d %I:%M:%S %Z %Y" ' 就是12小时制 然后保存退出 H 小时(按 24 小时制显示,用两位表示) (00..23)I 小时(按 12 小时制显示,用两位表示) (01..12...
linux 下如何安装rpm命令
1、执行命令“cd \/home”进入服务器根目录home。2、打开电脑桌面的xftp客户端,上传rpm安装包到服务器根目录home里面。3、执行命令“ls”查看\/home目录下的文件。4、执行命令“rpm -ivh postgresql96-libs-9.6.15-1PGDG.rhel6.x86_64.rpm”安装第一个rpm包。5、执行命令“ rpm -ivh postgresql96...
linux awk 内置函数详细介绍
从1月1日起一年中的第几天 %m 十进制表示的月份 %M 十进制表示的分钟 %p 12小时表示法(AM\/PM) %S 十进制表示的秒 %U 十进制表示的一年中的第几个星期(星期天作为一个星期的开始) %w 十进制表示的星期几(星期天是0) %W 十进制表示的一年中的第几个星期(星期一作为一个星期的开始) %x 重新设置本地...
司沿乳康: 安装nginx前,我们首先要确保系统安装了g++、gcc、openssl-devel、pcre-devel和zlib-devel软件,可通过如图所示命令进行检测,如果以安装我们可以通过图二所示卸载 我们一般安装linux软件都会在/usr/local目录下,然后进行解压编译安装,...
称多县15893353711: 如何在Linux上启用 Nginx 的 HTTP/2 协议支持 - ?
司沿乳康: HTTP/2 是 HTTP 网络协议的主要修订版本,其专注于 HTTP 协议的性能改进.HTTP/2 协议的目标是减少延迟,并且允许在 Web 浏览器和服务器之间的一个连接上并行发起多个请求,因此 Web 应用程序会更快.
称多县15893353711: 如何用linux命令查看nginx是否在正常运行 - ?
司沿乳康: 1.[root@localhost ~]# ps -ef |grep nginx 看是否存在主进程和php-fpm子进程 nginx: master process00:00:00 php-fpm:xxx2.查看nginx监听的端口是否存在 [root@localhost ~]# netstat -tlnup|grep nginx tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 12891/nginx3.如果nginx已经做成服务 [root@localhost ~]# service nginx status nginx (pid 12891) 正在运行...看是否正在运行
称多县15893353711: Linux系统下面的web服务器用的比较多的是apache,好像有个nginx,听说性能比apache高? - ?
司沿乳康: 在我的印象里面用nginx确实也不少,但是去面试的时候发现上了点规模的都是用nginx.因为nginx处理并发的能力要比apache好很多,以前做过测试在不做负载均衡横和集群的情况下单机apache在6~8K,用nginx可以到2W,至于为什么相信网上有更多的详细资料
称多县15893353711: 如何在远程Linux服务器上搭建Nginx - ?
司沿乳康: 1.将nginx的压缩包nginx-1.8.0.tar.gz上传到Linux服务器2.由于nginx是C语言开发的并且我们这里是通过编译nginx的源码来安装nginx,所以Linux上要安装C语言的编译环境gcc, 如果已经安装此步可以省略,否则执行命令:yum install gcc-c++ ...
称多县15893353711: linux如何搭建多个网站? - ?
司沿乳康: 其中,[users]是必须的.下面列出要访问svn的用户,每个用户一行.示例:[users] alan=password king=hello 这个里面的user表示当前test版本库的成员.6.3修改authz [root@localhostconf]#viauthz 用户组格式:[groups]=,其中,1个用户组可以包...
称多县15893353711: 如何在linux系统中使用PHPMySQladmin来管理MYSQL等数 - ?
司沿乳康: 修改 nginx.conf 文件实现.在 Linux 上该文件的路径为 /usr/local/nginx/conf/nginx.conf,Windows 下 安装目录\conf\nginx.conf. 1 server { 2 listen 80; 3 server_name localhost; 4 5 …… 6 } 改成 view sourceprint? 01 server { 02 listen 81; 03 server_...
称多县15893353711: linux 上修改了nginx.conf 怎么重新加载配置文件生效 - ?
司沿乳康: 1、连接上相应的linux主机,进入到等待输入shell指令的linux命令行状态下.2、在linux命令行下输入shell指令:/etc/init.d/nginx reload.3、最后,按下回车键执行shell指令,此时会看到nginx重新加载了配置文件.
称多县15893353711: linux下怎么编写一键安装nginx的脚本 - ?
司沿乳康: 可以利用上一条命令的退出返回值来判断是否执行成功. nginx -t if [ $? -eq 0 ] then nginx -s reload fi