Ubuntu 16.04 下部署Node.js+MySQL微信小程序商城
环境介绍阿里云ECS Ubuntu 16.04 64 更新系统和安装git、vim、curlaptupdate-y aptupgrade-y aptinstallcurlgit-y 通过nvm安装node.js
curl-o-https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh|bash nvm安装成功后,关闭当前终端,重新连接 nvm--version 看到输出版本信息0.33.2表示安装成功
nvmls-remote nvminstallv8.2.1 node-v 看到输出版本信息v8.2.1表示安装成功 安装MySQL 5.7aptinstallmysql-server-y 安装过程会要求设置mysql的密码,并记住密码 验证mysql是否安装成功 mysql-uroot-p 回车后输入安装时输入的密码,登录成功后的样子
登录成功后 开始运行NideShop
mkdir/var/www cd/var/www gitclonehttps://github.com/tumobi/nideshop
npminstallthinkjs@2-g thinkjs--version
cd/var/www/nideshop npminstall
mysql-uroot-p-e"createdatabasenideshopcharactersetutf8mb4" mysql-uroot-pnideshop</var/www/nideshop/nideshop.sql
vimsrc/common/config/db.js 修改后
配置数据库信息
编译项目 npmruncompile 以生产模式启动 nodewww/production.js 打开另一个终端验证是否启动成功 curl-Ihttp://127.0.0.1:8360/ 输出HTTP/1.1 200 OK,则表示成功
使用 PM2 管理服务
npminstall-gpm2 修改项目根目录下的pm2.json为: vimpm2.json 修改后的内容如下 : {
"apps":[{
"name":"nideshop","script":"www/production.js","cwd":"/var/www/nideshop","exec_mode":"cluster","instances":1,"max_memory_restart":"256M","autorestart":true,"node_args":[],"args":[],"env":{
}
}]
}
如果服务器配置较高,可适当调整max_memory_restart和instances的值
pm2startOrReloadpm2.json 成功启动
成功启动 再次验证是否可以访问 curl-Ihttp://127.0.0.1:8360/ 使用 nginx 做反向代理aptinstallnginx-y 测试本地是否可以正常访问 curl-Ilocalhost 修改nginx配置 cp/etc/nginx/sites-available/default/etc/nginx/sites-available/default.bak vim/etc/nginx/sites-available/default 修改后的内容 server{
listen80;
server_namewww.nideshop.comnideshop.com;#此处改为你的域名
root/var/www/nideshop;
set$node_port8360;
indexindex.jsindex.htmlindex.htm;
if(-f$request_filename/index.html){
rewrite(.*)$1/index.htmlbreak;
}
if(!-f$request_filename){
rewrite(.*)/index.js;
}
location=/index.js{
proxy_http_version1.1;
proxy_set_headerX-Real-IP$remote_addr;
proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for;
proxy_set_headerHost$http_host;
proxy_set_headerX-NginX-Proxytrue;
proxy_set_headerUpgrade$http_upgrade;
proxy_set_headerConnection"upgrade";
proxy_passhttp://127.0.0.1:$node_port$request_uri;
proxy_redirectoff;
}
location=/development.js{
denyall;
}
location=/testing.js{
denyall;
}
location=/production.js{
denyall;
}
location~/static/{
etagon;
expiresmax;
}
}
|



