且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

node+mongo + vue 开发管理平台部署到阿里云服务器入坑之旅

更新时间:2022-01-29 03:07:10

导语:使用vue+element-ui开发前端,node.js+express+mongodb开发后端,部署到阿里云服务器(镜像信息Node.js)。

1、申请阿里云服务器

可以申请一个最便宜的用来练手。系统镜像选择CentOS,应用镜像选择Node.js(版本4.8.4,需要升级)。

2、登录服务器

打开终端,输入sudo -i 来切换用户,输入ssh root@公网ip

sudo -i
ssh root@公网ip
输入密码(如果是第一次需要根据提示输入yes)

密码需要在服务器运维-远程连接里去设置,如图node+mongo + vue 开发管理平台部署到阿里云服务器入坑之旅

3、用transmit客户端连接服务器

下载transmit
node+mongo + vue 开发管理平台部署到阿里云服务器入坑之旅
选手sftp,输入server 公网ip、user name root 、password * 点击connect
连接到服务器,就可以把代码上传到服务器相应的文件夹里,推荐home文件夹

4、修改nginx

vi /usr/local/nginx/conf/nginx.conf

修改如下

server {
        listen 80;
        server_name _;

        return 404;
}

server {
        listen       80;
        server_name  你的域名.com www.你的域名.com;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {  // 这里通过nginx把所有请求都转发到node启动的服务上
            proxy_pass http://127.0.0.1:nodejs配置的端口号;
        }

        #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;
        }

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ \.php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}
        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    }
启动nginx  常用方法
/usr/local/nginx/sbin/nginx
/usr/local/nginx/sbin/nginx -t #检查配置文件编写是否正确
/usr/local/nginx/sbin/nginx -s reload #Nginx平滑重启 (一般用这个就可以了)
/usr/local/nginx/nginx.conf #配置文件。

5、升级node版本

通过终端进入服务器后,输入nvm list

[root@iz2zeaxcuikwvill2ho8yiz bin]# nvm list
         v4.8.4
->      v12.6.0
default -> stable (-> v12.6.0)
node -> stable (-> v12.6.0) (default)
stable -> 12.6 (-> v12.6.0) (default)
iojs -> N/A (default)
lts/* -> lts/dubnium (-> N/A)
lts/argon -> v4.9.1 (-> N/A)
lts/boron -> v6.17.1 (-> N/A)
lts/carbon -> v8.16.0 (-> N/A)
lts/dubnium -> v10.16.0 (-> N/A)
[root@iz2zeaxcuikwvill2ho8yiz bin]# 

这里使用的是v12.6.0
nvm install stable来安装稳定版
nvm use stable 指定某个版本
nvm alias default stable 来改变默认版本,这样就不用每次都切换版本了
如果我们node项目中使用了es6的语法,就需要这样升级node版本

6、安装pm2

全局安装

npm install pm2 -g

用pm2来启动node项目,维护进程

pm2 start ./bin/www // 启动项目
pm2 list // 查看当前启动项
pm2 restart id // 重启指定项目
pm2 logs  // 查看node 日志

7、安装mongodb

如果项目内/usr/local 内有mongodb了就不用安装了

cd /usr/local
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.4.6.tgz

解压,重新命名文件夹名

tar zxvf mongodb-linux-x86_64-2.6.0.tgz
mv mongodb-linux-x86_64-2.6.0 mongodb

创建数据和日志存放目录

mkdir /var/mongodb
mkdir /var/mongodb/data
mkdir /var/mongodb/logs

打开rc.local文件,添加CentOS开机启动项:

vim /etc/rc.d/rc.local

将mongodb启动命令追加到本文件中,让mongodb开机自启动:

/usr/local/mongodb/bin/mongod --dbpath=/var/mongodb/data --logpath /var/mongodb/logs/log.log --logappend --auth --port 27017 --fork
注意 --auth有这个属性则会需要验证登录

启动mongo

/usr/local/mongodb/bin/mongod --dbpath=/var/mongodb/data --logpath /var/mongodb/logs/log.log --logappend --auth --port 27017 --fork

启动pm2 start ./bin/www,然后访问公网ip即可

碰到的开发问题

1、当用终端连接服务器报错

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
SHA256:WPZj3KzLPVObBN07JKimZxPVS+3GRMMeuVj85oo8Gtw.
Please contact your system administrator.
Add correct host key in /var/root/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /var/root/.ssh/known_hosts:1
ECDSA host key for 47.93.54.209 has changed and you have requested strict checking.
Host key verification failed.

当服务器重新配置的时候就会出现这种情况,服务器的ssh发生了改变,需要删除本地的缓存数据。输入vi /var/root/.ssh/known_hosts把对应公网ip的数据删除,保存即可

2、结束mongodb进程 重启mongodb

> ps -ef | grep mongod
root     20446     1  0 11:44 ?        00:00:02 /usr/local/mongodb/bin/mongod --dbpath=/var/mongodb/data --logpath /var/mongodb/logs/log.log --logappend --auth --port 27017 --fork
root     20941 18326  0 11:54 pts/0    00:00:00 grep --color=auto mongod
> kill -9 20446