版权声明:本文由袁飞翔原创文章,转载请注明出处: 
文章原文链接:https://www.qcloud.com/community/article/176

来源:腾云阁 https://www.qcloud.com/community

最近入手了一台腾讯云机子,用于团队社区站点的建设,站点架构:

  • 数据库服务:mongodb
  • 后台:nodejs + express
  • 接入:nginx  

整个购买到部署的要点步骤:

  • 服务器购买
  • nginx 编译安装配置
  • node 安装
  • mongodb 安装
  • server部署

服务器购买

从腾讯云的首页找到购买入口。(弱弱的说一句,云太多了,企鹅云发展好快~~~ )

按需选择自己的配置,包年可以优惠只需付10个月。最终我们的配置

选购硬盘时需要注意可以选择云硬盘,它支持很多扩容,性能按官方的描述没有多大差别,详细硬盘对比

购买成功几分钟之后我们便能拿到机器的IP

登录机器

ssh ubuntu@119.29.237.x

第一次使用用户名和密码登录,之后可以配置ssh的免密码登录

nginx 安装

使用apt-get安装nginx

sudo apt-get install nginx

这是最简单的方法,但是这不是最新的nginx,如果需要支持http2,至少需要nginx 1.9.5,因此我们选择本地编译最新的nginx安装

wget https://nginx.org/download/nginx-1.10.1.tar.gz
tar -xvf nginx-1.10.1.tar.gz
cd nginx-1.10.1 # 安装编译依赖
sudo apt-get install make libssl-dev zlib zlib-devel zlib1g-dev openssl openssl-devel pcre-devel \
libpcre3-dev libpcre++-dev # 编译安装
./configure --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module \
--with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module \
--with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module \
--with-http_stub_status_module --with-http_auth_request_module --with-mail --with-mail_ssl_module \
--with-file-aio --with-ipv6 --with-cc-opt='-O2 -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic' \
--with-http_v2_module
make
sudo make install # 之后nginx将安装至 /usr/local/nginx目录
# 创建一个nginx命令软连接
sudo ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/nginx
# 之后就可以运行`nginx`命令了
nginx -V # 配置nginx的自动启动
# 下载init.d/nginx文件
sudo wget https://raw.githubusercontent.com/JasonGiedymin/nginx-init-ubuntu/master/nginx -O /etc/init.d/nginx
sudo chmod +x /etc/init.d/nginx
# 添加开机自动启动
sudo update-rc.d -f nginx defaults # 启动
sudo /etc/init.d/nginx start
# sudo /etc/init.d/nginx stop # 停止
# sudo /etc/init.d/nginx restart # 重启

mongodb 安装

mongodb可以直接使用apt-get安装

sudo apt-get install mongodb

# 添加开机自动启动
sudo update-rc.d -f mongodb defaults # 启动
sudo /etc/init.d/mongodb start

node 安装

# 从node官网下载已编译好了的node
wget https://nodejs.org/dist/v4.6.0/node-v4.6.0-linux-x64.tar.xz
tar -xvf node-v4.6.0-linux-x64.tar.xz
cd node-v4.6.0-linux-x64.tar.xz # 拷贝安装
sudo cp -r bin include lib share /usr/local/ # node 命令测试
node -v

server部署

准备工作:

# 创建目录
sudo mkdir -p /data/www/ivweb.io # 创建用户
sudo groupadd www # 创建用户
# nginx也使用此用户运行
sudo useradd www -g www -d /data/www # /data目录权限
sudo chown www:www /data # 安装forever
sudo npm install -g forever

本地使用rsync命令同步文件至服务器(Linux/Mac,windows的同学需要先安装这个命令)

rsync -rtzvlC --exclude node_modules --exclude ".git" \
./ "www@ivweb.io:/data/www/ivweb.io"

启动服务

# 使用www登陆服务器

cd /data/www/ivweb.io
# 安装依赖
npm install
# forever 启动app
forever start app.js # 可以使用`forever list`查看运行情况及对应的log输出文件,使用`tail -f`动态查看log
forever list
# tail -f XXX.log

之后配置nginx映射,重启nginx机大功告成:

腾讯云从零部署nodejs站点的更多相关文章

  1. 腾讯云上免费部署HTTPS

    接上篇<腾讯云下安装 nodejs + 实现 Nginx 反向代理>,想从头一步到位的同学建议从上篇文章开始阅读.本文将继续介绍如何通过 Nginx 免费部署HTTPS. 留意下,这里的“ ...

  2. 腾讯云centos 7部署 dotnetcore+Angular2 实践

    版权声明:本文由屈政斌原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/239 来源:腾云阁 https://www.qclo ...

  3. 腾讯云Centos服务器部署问题

    在Centos7上部署Tomcat过程 下载并安装JDK 下载并部署Tomcat 打开Centos中对应的端口(默认80) 这几步操作很清楚,但首次使用Centos7时遇到了一个问题,外网无法访问服务 ...

  4. 腾讯云Windows Server下nodejs websocket ssl配置

    1.从腾讯云申请SSL证书,下载解压,得到如下文件: 2.nodejs代码: // wss.js const fs = require('fs'); // 一些配置信息 const cfg = { p ...

  5. 腾讯云linux系统部署项目无法通过外网访问

    最近尝试使用了一下腾讯去的linux系统服务器,但是却遇到各种问题,下面记录的问题是项目部署完成后却无法通过外网访问. 服务器:腾讯云 系统 :CentOS 8.0 64位 处理思路:通过度娘百般摸索 ...

  6. PHP--腾讯云服务器上部署LNMP环境

    本文参考 云服务器上部署Laravel的实例教程 腾讯云 创建 Laravel5.4 项目 阿里云服务器部署php的laravel项目,在阿里云买ECS 搭建 Linux+Nginx+Mysql+PH ...

  7. 腾讯云服务nginx部署静态项目

    一直想要搭建自己的blog,买了基础云服务器练手 文章内容是根据腾讯文档(https://cloud.tencent.com/document/product/213/2131)总结 部署静态页面归纳 ...

  8. 腾讯云EKS 上部署 eshopondapr

    腾讯云容器服务(Tencent Kubernetes Engine,TKE)基于原生 kubernetes 提供以容器为核心的.高度可扩展的高性能容器管理服务.腾讯云容器服务完全兼容原生 kubern ...

  9. 腾讯云从零搭建PHP运行环境

    一.首先我们得注册腾讯云,租用一台服务器,我选择的是CentOS 7.2 64位,这时候会给你这台主机的公网IP和内网IP,以及这台主机的用户名及密码. 二.我们可以使用腾讯云网页上自带的登录按钮进行 ...

随机推荐

  1. WPFの单例模式

    版本一: /// <summary>/// A simple singleton class implements./// </summary>public sealed cl ...

  2. mvc ==》json url

    mvc ==>json 这也是.net 4.0 与4.5的区别,4.0 自带 ,而4.5 则要自己加上去,微软说是 當然,最簡單的應變措施就是直接把這段設定加回去,不過,加回去之前請三思,這條設 ...

  3. C#注册表操作,根据键取值

    string into = ""; RegistryKey key = Registry.LocalMachine; RegistryKey myreg = key.OpenSub ...

  4. Python 字符编码 zz

    http://www.cnblogs.com/huxi/archive/2010/12/05/1897271.html 1. 字符编码简介 1.1. ASCII ASCII(American Stan ...

  5. virtualenv -- python虚拟沙盒(linux版本)

    有人说:virtualenv.fabric 和 pip 是 pythoneer 的三大神器. 不管认不认同,至少要先认识一下,pip现在倒是经常用到,virtualenv第一次听说,不过,总得尝试一下 ...

  6. EasyUI--messager

    1. alert 方法 <script type="text/javascript"> $( function() { $.messager.alert("调 ...

  7. 5.5.3使用terminfo功能标志

    当使用terminfo时,需要做的第一件事就是调用函数setupterm来设置终端类型.这将为当前的终端类型初始化一个TERMINAL结构.然后,你就可以查看当前终端的功能标志并使用他们的功能了. # ...

  8. [SAP ABAP开发技术总结]EXIT-COMMAND

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  9. HDU 5826 physics(物理)

     physics(物理) Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)   D ...

  10. POJ-2175 Evacuation Plan 最小费用流、负环判定

    题意:给定一个最小费用流的模型,根据给定的数据判定是否为最优解,如果不为最优解则给出一个比给定更优的解即可.不需要得出最优解. 解法:由给定的数据能够得出一个残图,且这个图满足了最大流的性质,判定一个 ...