阿里云Ubuntu 搭建nodejs生产环境

本篇文章主要介绍如何利用阿里云搭建搭建nodejs生产环境。

购买阿里云的服务器

首先需要在阿里云上购买服务器,地址为:https://www.aliyun.com. 各位同学可以通过这里
链接

登录服务器

在终端输入: ssh root@xx.xx.xx.xx // xx.xx.xx.xx为服务器的IP地址,
会提示你输入服务器的密码的。

安装软件

登录服务器后可以开始安装软件,当然你可以在创建个用户,在该用户下,进行安装软件。

  1. 首先更新 apt-get 软件源,终端输入:

sudo apt-get update

  1. 安装 build-essential 和 libssl-dev包, 终端输入如下命令:

sudo apt-get install build-essential libssl-dev

  1. 安装nvm,nvm是node version manager , 可以在改网址下获取安装nvm的安装脚本
    在终端下输入如下内容:

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.1/install.sh | bash

  1. 待上一步脚本执行完成后执行如下命令:

source ~/.bashrc

当然你也可以把控制台关闭了在重新打开。
5 . 选择要安装的nodejs版本,关于nodejs的版本可以通过如下命令获取:

nvm ls-remote

可以看到nodejs版本的更新历史。我个人选择的是安装最新的版本:6.10.2,所以输入命令:

nvm install v6.10.2

  1. 安装nodejs 进程管理工具 pm2, 采用全局安装的方式。

npm install pm2 -g

  1. 安装git 代码管理工具

sudo apt-get install git

  1. 安装nginx服务器:

sudo apt-get install nginx

关于nginx的命令,大家可以百度google下。这里介绍几个常用的命令。

service nginx reload // 重新加载命令,修改配置文件的时候使用,才能生效。

systemctl restart nginx // nginx 重新启动

  1. 编辑nginx 配置文件

sudo vi /etc/nginx/nginx.config

  1. 个人的配置文件如下:
service nginx reload
user www-data;
worker_processes auto;
pid /run/nginx.pid;
events {
    worker_connections 768;
    # multi_accept on;
}

##添加的个人配置服务器。
http {
       server {
       listen 80; # 监听80端口
           server_name  www.sousoublog.com; # 服务地址
           client_max_body_size 10240000000M;
           location /{
        proxy_pass http://www.sousoublog.com:3000; # nodejs监听的端口
                proxy_set_header Host $host:$server_port;   
       }
    }
    ##
    # Basic Settings
    ##
    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 65;
    types_hash_max_size 2048;
    # server_tokens off;
    # server_names_hash_bucket_size 64;
    # server_name_in_redirect off;
    include /etc/nginx/mime.types;
    default_type application/octet-stream;
    ##
    # SSL Settings
    ##

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
    ssl_prefer_server_ciphers on;

    ##
    # Logging Settings
    ##

    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;

    ##
    # Gzip Settings
    ##

    gzip on;
    gzip_disable "msie6";

    # gzip_vary on;
    # gzip_proxied any;
    # gzip_comp_level 6;
    # gzip_buffers 16 8k;
    # gzip_http_version 1.1;
    # gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

    ##
    # Virtual Host Configs
    ##

    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
}

#mail {
#   # See sample authentication script at:
#   # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript
# 
#   # auth_http localhost/auth.php;
#   # pop3_capabilities "TOP" "USER";
#   # imap_capabilities "IMAP4rev1" "UIDPLUS";
# 
#   server {
#       listen     localhost:110;
#       protocol   pop3;
#       proxy      on;
#   }
# 
#   server {
#       listen     localhost:143;
#       protocol   imap;
#       proxy      on;
#   }
#}

创建代码仓库。

mkdir myproject

cd myproject

git init

git clone root@xxx.xxx.xxx.xxx:myproject

git config --global user.email "you@example.com"

git config --global user.name "Your Name"

// 设置你git 的名字和邮箱

git config receive.denyCurrentBranch updateInstead

如果大家在电脑端无法提交代码的时候,如果遇到以下打印的log错误信息:

Compressing objects: 100% (12/12), done.
Writing objects: 100% (15/15), 2.67 KiB | 0 bytes/s, done.
Total 15 (delta 1), reused 0 (delta 0)
remote: error: refusing to update checked out branch: refs/heads/master
remote: error: By default, updating the current branch in a non-bare repository
remote: error: is denied, because it will make the index and work tree inconsistent
remote: error: with what you pushed, and will require 'git reset --hard' to match
remote: error: the work tree to HEAD.
remote: error:
remote: error: You can set 'receive.denyCurrentBranch' configuration variable t
remote: error: 'ignore' or 'warn' in the remote repository to allow pushing int
remote: error: its current branch; however, this is not recommended unless you
remote: error: arranged to update its work tree to match what you pushed in som
remote: error: other way.
remote: error:
remote: error: To squelch this message and still keep the default behaviour, se
remote: error: 'receive.denyCurrentBranch' configuration variable to 'refuse'.
To www.sousoublog.com:/home/search/addgrouppro
 ! [remote rejected] master -> master (branch is currently checked out)
error: failed to push some refs to 

可以通过以下命令解决, 通过终端,进入到服务的代码仓库下输入:

git config receive.denyCurrentBranch updateInstead

发布项目:

项目完成之后,在项目下面启动服务器:

pm2 start bin/www --name "myproject"

当然过程是复杂的,比如你还要配置阿里云服务安全组。让服务器的哪些端口可以让远程访问,如果要真正项目,过程没有那么简单。

由于我经常使用阿里云服务器,我有成为阿里云的推广大使,如果你遇到问题,可以咨询我。在文章下留言,或者给我打赏。同时可以通过我的推广链接获取优惠券,节省你的资金投入。

如果你使用阿里云服务器可以戳链接,有优惠的。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,163评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,301评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,089评论 0 352
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,093评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,110评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,079评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,005评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,840评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,278评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,497评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,667评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,394评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,980评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,628评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,796评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,649评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,548评论 2 352

推荐阅读更多精彩内容