导语:使用
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)
密码需要在服务器运维-远程连接里去设置,如图
3、用transmit客户端连接服务器
下载transmit
选手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