pm2部署node项目和vue、react项目

node项目

部署node项目,删除本地node_modules依赖,
部署到服务器,下载依赖(必须),跑起来(和本地一样),
开启node跑的端口,阿里云防火墙要启(添加规则),服务器也要起,命令:

查看某一端口(防火墙)是否放行:firewall-cmd --zone=public --query-port=3000/tcp
查看(防火墙)放行的所有端口: firewall-cmd --list-all --permanent
增加(防火墙)放行端口:firewall-cmd --zone=public --add-port=3000/tcp --permanent
)
开启端口后重启防火墙:service firewalld restart

重启防火墙,才会生效

开启mongodb端口同理(两边放行),本地Studio 3T连接
pm2部署node项目和vue、react项目_第1张图片
服务器这边数据库配置也要改,把bindIp:127.0.0.1改成0.0.0.0(允许所有IP访问,改完后记得改回来)
pm2部署node项目和vue、react项目_第2张图片
这样Studio 3T连接才能成功

更新node项目
更新node项目的话,删除掉原有的项目,重新下载依赖,跑起来,这时候跑是跑不起来的,因为pm2还跑着之前那个项目,这时候会提示3000端口被占用。
使用查看pm2跑的项目:

pm2 list

停止pm2下所有的进程

pm2 delete all

pm2重新(包裹)跑一下新的node项目即可

vue项目

npm run build打包,dist文件夹下的内容往wwwroot/123.57.5.134下一扔,hash改为history模式(去掉#)
要先修改router配置

const router = new VueRouter({
  mode:'history',  //上线打包改为history
  routes
})

然后修改nginx配置,正常人都是修改nginx.conf就行,修改内容如下:

  http {
      include       mime.types;
      default_type  application/octet-stream;
      #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
      #                  '$status $body_bytes_sent "$http_referer" '
      #                  '"$http_user_agent" "$http_x_forwarded_for"';
      #access_log  logs/access.log  main;
 
      sendfile        on;
      #tcp_nopush     on;
      #keepalive_timeout  0;
      keepalive_timeout  65;
      #gzip  on;
 
      server {
          listen       80;
          server_name  localhost;
          #charset koi8-r;
          #access_log  logs/host.access.log  main;
 
          location / {
              root   /root/project/www; #默认访问目录
              index  index.html; #默认访问文件
              try_files $uri $uri/ /index.html; #目录不存在则执行index.html
          }
          #error_page  404              /404.html;
          ... #后面的不需要修改

location中加一句try_files $uri $uri/ /index.html; #目录不存在则执行index.html
我的宝塔面板,不一样,要修改 www/server/panel/vhost/nginx下的123.57.5.134.conf,直接在server中加try_files $uri $uri/ /index.html; #目录不存在则执行index.html
遇到问题,重启云服务器最好使

react项目

也一样,打包部署,去掉#

下一节写jenkins持续集成、部署

你可能感兴趣的:(linux/运维/nginx,数据库,node,express,mongodb,pm2,数据库)