zoukankan      html  css  js  c++  java
  • nginx+pm2+nodejs部署

    (可选)服务器端关闭root用户的ssh访问:

    为服务器安全起见,关闭root账户的远程访问。

    打开配置文件:

    vi /etc/ssh/sshd_config
    

    找到如下设置,并修改yes为no:

    PermitRootLogin no
    

    保存文件后,重启sshd服务:

    service sshd restart  

    本地安装pm2

    npm install pm2 -g

    如果可得到版本号,则说明安装成功:

    pm2 -v 

    配置SSH无密码登录

    1.1、本地环境配置

    #用户家目录
    cd .ssh
    
    #生成私钥和公钥
    ssh-keygen -t rsa -b 4096 -C "bradball@qq.com"
    
    #开启SSH代理
    eval "$(ssh-agent -s)"
    
    #将id_rsa加入代理中
    ssh-add ~/.ssh/id_rsa
    

     1.2、server环境搭建

    前面步骤和本地环境相同。然后:

    sudo vim authorized_keys
    

     将本地id_rsa.pub写入 authorized_keys。

    #授权
    sudo chmod 600 authorized_keys
    
    #重启ssh
    sudo service ssh restart
    

    设置Github仓库(略)

    本地pm2的ecosystem配置

    {
      "app": [{
        "name" :"Ice",
        "script": "service.js",
        "env" :{
          "COMMON_VARIABLE": "true"
        },
        "env_production": {
          "NODE_ENV": "production"
        }
      }],
      "deploy": {
        "production": {
          "user": "brad",
          "host": ["xxx.78.174.xxx"],
          "ref": "origin/master",
          "port": "3006",
          "repo": "git@git.coding.net:dt_xz/ice.git",
          "path": "/home/brad/ice/production",
          "ssh_options": "StrictHostKeyChecking=no",
          "pre-deploy-local": "echo 'Deploy Done'",
          "env": {
            "NODE_ENV": "production"
          }
    
        }
      }
    }
    
    production : {
          user : "登录远程服务器的用户名,此处填写我们创建的yishi",
          host : "远程服务器的IP或hostname,此处可以是数组同步部署多个服务器,不过鉴于我们只有一个服务器,因此我们填写123.57.205.23",
          ref  : "远端名称及分支名,此处填写origin/master",
          repo : "git仓库地址,此处填写git@github.com:e10101/pm2app.git",
          path : "远程服务器部署目录,需要填写user具备写入权限的目录,此处填写/home/yishi/www/production",
          "post-deploy" : "部署后需要执行的命令,此处填写npm install && pm2 startOrRestart ecosystem.json --env production"
        },
    

    提交代码,在本地运行命令:

    pm2 deploy ecosystem.json production setup
    

     提示错误:

    Host key verification failed.
    fatal: Could not read from remote repository.
    Please make sure you have the correct access rights and the repository exists.
        failed to clone
    Deploy failed
    

    此时主要是在远程服务器中,并未将加入known_hosts,在服务器端通过如下命令设置:

    ssh-keyscan -t rsa github.com >> ~/.ssh/known_hosts
  • 相关阅读:
    Spring boot unable to determine jdbc url from datasouce
    Unable to create initial connections of pool. spring boot mysql
    spring boot MySQL Public Key Retrieval is not allowed
    spring boot no identifier specified for entity
    Establishing SSL connection without server's identity verification is not recommended
    eclipse unable to start within 45 seconds
    Oracle 数据库,远程访问 ora-12541:TNS:无监听程序
    macOS 下安装tomcat
    在macOS 上添加 JAVA_HOME 环境变量
    Maven2: Missing artifact but jars are in place
  • 原文地址:https://www.cnblogs.com/xz1024/p/8025102.html
Copyright © 2011-2022 走看看