node服务部署--总流程

一、服务器内存不能小于2G

二、更换系统盘,公共镜像选择centerOs,使用最新版本。

三、安全设置,使用自定义配置,设置密码。

四、重新启动后,需要在云服务中安装node

五、使用cdm连接远程服务器。

  • 1、使用命令: ssh 用户名@ip地址 回车

  • 如果报如下错误

在这里插入图片描述

需要使用vim 加对应路径去编辑该文件。将该文件下所有内容删除,两次d,然后保存。

  • 如果不报错,输入相应的服务器密码进行登录。
  • 到此,本地连接远程服务器就完成了本地连接服务器。

六、配置密钥,实现不用输入用户名和密码实现服务器连接。

LInux系统:

  • 1、cd ~ 进入默认路径下
  • 2、ls -al 查看所有文件,就会看到.ssh文件
  • 3、然后cd .ssh/ 进入.ssh文件夹下
  • 4、创建密钥文件mr-key,输入如下: ssh-keygen -t rsa -f mr-key 回车
  • 5、做一些询问,不用管一路回车,最后ls查看到有mr-key文件和mr-key.pub
  • 6、然后将mr-key.pub拷贝到服务器下默认路径下,scp mr-key.pub ssh@ip:. 回车 输入密码
  • 7、进入服务器,进入默认路径cd ~ ,并查看默认路径是否存在mr-key.pub文件,ls -al
  • 8、进入.ssh文件夹中,将mr-key.pub文件追加到.ssh文件夹中的authorized_keys文件下,使用命令:
cat ~/mr-key.pb >> ~/.ssh/authorized_keys

之后使用vim authorized_keys编辑该文件,看到有东西被追加进来了。

  • 9、重启服务器的ssh,使用命令: systemctl restart sshd。如果没有反应,说明ssh重启成功。
  • 10、回到本地.ssh文件夹下,本地的mr-key.pub文件就没有作用了,此时rm mr-key.pub删除此文件
  • 11、在.ssh文件下新建config文件,touch config命令,使用vsCode写入如下内容,保存退出
Host zhang // 以后登录服务器使用的名字
  HostName 192.168.xxx   // ip地址
  port 22 // ssh默认端口号为22
  User root // 服务器用户名
  IdentityFile ~/.ssh/mr-key
  • 12、进入本地的.ssh文件夹下,进入know_host文件,将之前登录服务器记录数据清除。vim know_host进入该文件编辑,两次d,删除所有内容,保存退出。

  • 13、在本地使用ssh zhang就能连接到服务器。

七、服务端安装nodejs

在服务器下载node最新版本,方法:

参考我另一篇文章服务端安装最新版node

此时在服务器使用node -v就能查看到node最新版本。

八、vscode安装sftp插件,通过配置就可以实现vscode连接服务器。

九、配置nginx反向代理

  • 首先在服务端运行 yum install -y nginx安装nginx

  • 安装完成后会在 /etc/nginx路径下会有nginx.conf文件,需要进行配置。

  • 执行vim /etc/nginx/nginx.conf进行编辑该文件

  • ##代码块中的events、http、server、location、upstream等都是块配置项##
    ##块配置项可以嵌套。内层块直接继承外层快,例如:server块里的任意配置都是基于http块里的已有配置的##
     
    ##Nginx worker进程运行的用户及用户组 
    #语法:user username[groupname]    默认:user nobody nobody
    #user用于设置master进程启动后,fork出的worker进程运行在那个用户和用户组下。当按照"user username;"设置时,用户组名与用户名相同。
    #若用户在configure命令执行时,使用了参数--user=usergroup 和 --group=groupname,此时nginx.conf将使用参数中指定的用户和用户组。
    #user  nobody;
     
    ##Nginx worker进程个数:其数量直接影响性能。
    #每个worker进程都是单线程的进程,他们会调用各个模块以实现多种多样的功能。如果这些模块不会出现阻塞式的调用,那么,有多少CPU内核就应该配置多少个进程,反之,有可能出现阻塞式调用,那么,需要配置稍多一些的worker进程。
    worker_processes  1;
     
    ##ssl硬件加速。
    #用户可以用OpneSSL提供的命令来查看是否有ssl硬件加速设备:openssl engine -t
    #ssl_engine device;
     
    ##守护进程(daemon)。是脱离终端在后台允许的进程。它脱离终端是为了避免进程执行过程中的信息在任何终端上显示。这样一来,进程也不会被任何终端所产生的信息所打断。##
    ##关闭守护进程的模式,之所以提供这种模式,是为了放便跟踪调试nginx,毕竟用gdb调试进程时最繁琐的就是如何继续跟进fork出的子进程了。##
    ##如果用off关闭了master_proccess方式,就不会fork出worker子进程来处理请求,而是用master进程自身来处理请求
    #daemon off;   #查看是否以守护进程的方式运行Nginx 默认是on 
    #master_process off; #是否以master/worker方式工作 默认是on
     
    ##error日志的设置#
    #语法: error_log /path/file level;
    #默认: error_log / log/error.log error;
    #当path/file 的值为 /dev/null时,这样就不会输出任何日志了,这也是关闭error日志的唯一手段;
    #leve的取值范围是debug、info、notice、warn、error、crit、alert、emerg从左至右级别依次增大。
    #当level的级别为error时,error、crit、alert、emerg级别的日志就都会输出。大于等于该级别会输出,小于该级别的不会输出。
    #如果设定的日志级别是debug,则会输出所有的日志,这一数据量会很大,需要预先确保/path/file所在的磁盘有足够的磁盘空间。级别设定到debug,必须在configure时加入 --with-debug配置项。
    #error_log  logs/error.log;
    #error_log  logs/error.log  notice;
    #error_log  logs/error.log  info;
     
    ##pid文件(master进程ID的pid文件存放路径)的路径
    #pid        logs/nginx.pid;
     
     
    events {
     #仅对指定的客户端输出debug级别的日志: 语法:debug_connection[IP|CIDR]
     #这个设置项实际上属于事件类配置,因此必须放在events{……}中才会生效。它的值可以是IP地址或者是CIRD地址。
     	#debug_connection 10.224.66.14;  #或是debug_connection 10.224.57.0/24
     #这样,仅仅以上IP地址的请求才会输出debug级别的日志,其他请求仍然沿用error_log中配置的日志级别。
     #注意:在使用debug_connection前,需确保在执行configure时已经加入了--with-debug参数,否则不会生效。
    	worker_connections  1024;
    }
     
    ##核心转储(coredump):在Linux系统中,当进程发生错误或收到信号而终止时,系统会将进程执行时的内存内容(核心映像)写入一个文件(core文件),以作为调试只用,这就是所谓的核心转储(coredump).
     
    http {
    ##嵌入其他配置文件 语法:include /path/file
    #参数既可以是绝对路径也可以是相对路径(相对于Nginx的配置目录,即nginx.conf所在的目录)
        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监听的端口
    #语法:listen address:port [ default(deprecated in 0.8.21) | default_server | [ backlog=num | rcvbuf=size | sndbuf=size | accept_filter=filter | deferred | bind | ssl ] ]
    #default_server: 如果没有设置这个参数,那么将会以在nginx.conf中找到的第一个server块作为默认server块
    	listen       8080;
     
    #主机名称:其后可以跟多个主机名称,开始处理一个HTTP请求时,nginx会取出header头中的Host,与每个server中的server_name进行匹配,以此决定到底由那一个server来处理这个请求。有可能一个Host与多个server块中的server_name都匹配,这时会根据匹配优先级来选择实际处理的server块。server_name与Host的匹配优先级见文末。
    	 server_name  localhost;
     
            #charset koi8-r;
     
            #access_log  logs/host.access.log  main;
     
            #location / {
            #    root   html;
            #    index  index.html index.htm;
            #}
     
    ##location 语法: location [=|~|~*|^~] /uri/ { ... }
    # location的使用实例见文末。
    #注意:location时有顺序的,当一个请求有可能匹配多个location时,实际上这个请求会被第一个location处理。
    	location / {
    	proxy_pass http://192.168.1.60;
            }
     
            #error_page  404              /404.html;
     
            # redirect server error pages to the static page /50x.html
            #
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
        }
     
    }
    
  • 对里边的server部分进行配置如下,其它东西不用变:

  • server {
    	listen       8080;
    	 server_name  localhost;
    	location / {
    	proxy_pass http://127.0.0.1:5000;  //当在浏览器访问8080端口就会进入服务器5000端口访问
            }
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
        }
    
  • 然后保存,对nginx重启,执行如下命令:

  • systemctl restart nginx
    

十、在服务端安装express,然后拉取代码到本地,在本地写node服务,防止版本不一致引起问题。可以借助sftp拉取代码。

十一、安装服务端软连接forever

在服务端安装forever

npm install forever -g

安装完成后并不能直接使用,需要创建软连接。

cd /usr/local/node/lib/node_modules

我们会发现有forever文件夹,安装过了,需要进行软连接配置,才能全局的使用。

执行如下命令:

ln -s /usr/local/node/lib/node_modules/forever/bin/forever /usr/bin/

也即是将原有路径的内容,软连接到全局默认的路径下,这样才能全局使用,这就是软连接的作用。

十二、使用forever启动服务器

使用node和nodemon启动服务器之后,当你断开连接的时候,就会导致node停止了,所以要使用forever来启动,这样,哪怕是断开和服务器连接,依然可以运行。进入服务器项目路径,执行如下命令启动服务。

forever start serve.js

如果想要停止运行,执行如下命令:

forever stop serve.js
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值