06-个人博客笔记-项目部署到腾讯云服务器

购买云服务器可以选择腾讯云和阿里云,前期可以使用免费的云服务器来部署自己的项目。我刚开始是试用的腾讯云服务器(windows系统)、然后又试用了阿里云的服务器(ubuntu系统)、最后还是购买了腾讯云的服务器(ubuntu)。各个平台都遇到了不同的问题,但是通过google都得到了解决。其实具体的步骤都可以参考各平台的文档,下面记录下我在部署中遇到的问题以及流程。

腾讯云服务器(windows系统)

1、服务器新建ftp站点: 可参考在Win7的IIS上搭建FTP服务及用户授权
2、进入腾讯云后台,设置安全组
3、安装必要软件:mongodb、node、npm、nginx
3、将代码上传到服务器指定目录:下载FileZilla上传工具,填写服务器公网地址、用户名、密码(购买完成后腾讯会发送这些信息),端口默认21 (ftp传输方式)

阿里云(ubuntu)

1、购买后先重置下密码,假如重置为123
2、下载FileZilla连接服务器:填写服务器公网地址、用户名、密码、端口填写22,因为默认是sftp传输方式,用户名填写root,阿里云的ubuntu默认是root,密码就是第一步重置的密码。连接完成后可看到服务器的目录结构
3、通过ssh root@公网地址 这种方式连接服务器,进入服务器安装必要的软件
4、为了方便终端操作,可以先安装Oh-my-zsh,步骤如下:

安裝 zsh 套件
$ apt-get install zsh
安装git
$ apt-get install git
安装完以上两步,执行下面的代码
curl -L https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh | sh
把zsh设置成默认-替换bash,重启终端
chsh -s /bin/zsh

5、安装mongodb: 官方教程
6、安装node、安装npm

sudo apt-get install nodejs
sudo apt-get install npm

7、安装pm2,通过pm2启动node可以使关闭终端时node依然运行。

npm install pm2 -g

8、进入后端代码的目录,通过npm i 安装后端代码需要的库,启动node

pm2 start index.js

可能出现的错误

import express from 'express';
^^^^^^
SyntaxError: Unexpected token import

解决方法

npm install -g babel-cli
pm2 start --interpreter babel-node index.js

通过pm2 list 查看node是否启动成功
9、安装nginx
nginx 下载页面查看最新稳定版本:http://nginx.org/en/download.html

// 下载
wget -o nginx-1.14.0.tar.gz http://nginx.org/download/nginx-1.14.0.tar.gz
// 解压
tar -zxf nginx-1.14.0.tar.gz
// 进入nginx-1.14.0目录  检测安装环境
./configure
// 编译
make
make install
安装完成

10、启动配置nginx,进入nginx目录,可以看到目录下有 sbin目录和conf目录,sbin目录下可以启动nginx,conf目录下可以配置nginx,首先启动nginx,查看nginx是否正常启动.

cd /usr/local/nginx
cd sbin 
nginx

在浏览器输入公网地址,出现下面的界面就说明nginx已经启动

屏幕快照 2018-05-02 下午8.36.52.png

11、修改nginx的配置,nginx配置的写法具体含义可自行google,下面粘贴出针对我的博客,以及对我有所帮助的文档。
nginx配置location总结及rewrite规则写法

user   root root;
worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    server {
        listen       8081;
        server_name  localhost;

        root  /home/ubuntu/demo/darrenblog/blogadmin;
        index  index.html index.htm;

        location / {
            try_files $uri $uri/ @router;
            index index.html;
        }
        location @router {
            rewrite ^.*$ /index.html last;
        }
   
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        location /admin/ {
            proxy_pass http://127.0.0.1:4000;
            proxy_set_header Host $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    
        location /works/ {
            proxy_pass http://127.0.0.1:3000;
            proxy_set_header Host $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }

    # 匹配任何以 /static/ 开头的地址,匹配符合以后,停止往下搜索正则,采用这一条。解决加载本地图片的跨越问题
    location ^~ /static/ {
    }
        location ~ .*\.(gif|jpg|jpeg|png)$ {  
            root /root/demo/server/darrenblog/uploads;#指定图片存放路径  
            proxy_store on;  
            proxy_store_access user:rw group:rw all:rw;  
            proxy_temp_path    /root/demo/server/darrenblog/uploads;#图片访问路径  
            proxy_set_header    Host 127.0.0.1;    
            if ( !-e $request_filename)  
            {  
                proxy_pass http://127.0.0.1:3000;
            }  
        }  
    }

    server {
        listen       8089;
        server_name  localhost;

        root   /root/demo/client/blogclient;
        index  index.html index.htm;

        location / {
            try_files $uri $uri/ @router;
            index index.html;
        }

        location @router {
            rewrite ^.*$ /index.html last;
        }
        location /tourist/ {
            proxy_pass http://127.0.0.1:3000;
            proxy_set_header Host $host:$server_port;
        }
      
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
        location /tourist/* {
            proxy_pass http://127.0.0.1:3000;
        }
   }
}

腾讯云服务器(ubuntu)

ubuntu服务器大致的配置上面都基本上描述了,腾讯云的ubuntu服务器默认的用户名是ubuntu,其他的配置基本差不多,需要注意的是nginx的启动。

启动nginx:
sudo /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
注意:-c 指定配置文件的路径,不加的话,nginx会自动加载默认路径的配置文件,可以通过 -h查看帮助命令。

具体配置

项目上传 github 每次提交都是一个分支

线上地址

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

推荐阅读更多精彩内容