成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

NodeJS項(xiàng)目遷移兼Ubuntu下NodeJS環(huán)境部署

jlanglang / 3074人閱讀

摘要:前言之前做的幾個(gè)項(xiàng)目都托管在阿里云服務(wù)器,但是最近要到期了。環(huán)境部署折騰了一天,其中也遇到幾個(gè)坑。項(xiàng)目遷移歷時(shí)一天,兩臺(tái)服務(wù)器的系統(tǒng)都是位。

前言

之前做的幾個(gè)項(xiàng)目都托管在阿里云服務(wù)器,但是最近要到期了。想著到底要不要續(xù)期,畢竟100/月。后面看著阿里云有個(gè)活動(dòng),800/三年。果斷買下。環(huán)境部署折騰了一天,其中也遇到幾個(gè)坑。

目錄
一、安裝環(huán)境
  1.1 安裝NodeJS環(huán)境
  1.2 安裝版本控制軟件Git
  1.3 安裝MongoDB數(shù)據(jù)庫(kù)
  1.4 安裝Nginx

二、導(dǎo)入數(shù)據(jù)

三、安裝項(xiàng)目

四、部署項(xiàng)目
  4.1 Nginx配置
  4.2 啟用HTTPS
  4.3 使用PM2部署項(xiàng)目
  4.4 開啟阿里云外網(wǎng)訪問

五、踩坑記錄
  5.1 數(shù)據(jù)庫(kù)導(dǎo)入失敗
  5.2 PM2部署失敗
一、安裝環(huán)境

為了保證項(xiàng)目運(yùn)行不出問題,在新服務(wù)器安裝和原服務(wù)器一致的環(huán)境。項(xiàng)目遷移歷時(shí)一天,兩臺(tái)服務(wù)器的系統(tǒng)都是Ubuntu 16.04 64位。

1.1 安裝NodeJS環(huán)境

自帶的NodeJS版本是4.2.6,版本有點(diǎn)低,使用npm的n模塊更新到最新版。

安裝NPM

sudo apt-get install npm

使用淘寶源

阿里云訪問npm的速度非常慢,這里通過設(shè)置,讓NPM從淘寶鏡像更新模塊

npm set registry https://registry.npm.taobao.org  // 設(shè)置從淘寶鏡像更新
npm set disturl https://npm.taobao.org/dist
npm cache clean  // 清除緩存

更新NodeJS

npm install n  // 更新NodeJS的模塊
n stable  // 更新到最新穩(wěn)定版
node -v  // v8.2.1
1.2 安裝版本控制軟件Git
sudo apt-get install git
1.3 安裝MongoDB數(shù)據(jù)庫(kù)
sudo apt-get install mongodb  // 安裝MongoDB
service mongodb start  // 啟動(dòng)服務(wù)
mongod  // 進(jìn)入交互式控制臺(tái),能加入說明啟動(dòng)成功,ctrl+c退出
1.4 安裝Nginx
sudo apt-get install nginx  // 安裝Nginx
二、導(dǎo)入數(shù)據(jù)

把以前的數(shù)據(jù)庫(kù)完整的遷移過來(lái)

從源服務(wù)器導(dǎo)出數(shù)據(jù)庫(kù)

mongodump -h localhost --port 27017 -d test -o database_dump

導(dǎo)入MongoDB數(shù)據(jù)庫(kù)

mongorestore -d test database_dump/test
三、安裝項(xiàng)目

項(xiàng)目是在Github開源,直接拉取就行。

git clone https://github.com/bergwhite/nchat.git  // 克隆項(xiàng)目
cd nchat  // 進(jìn)入目錄
npm install 安裝模塊
npm run build
四、部署項(xiàng)目 4.1 Nginx配置
vim /etc/nginx/nginx.conf  // 編輯Nginx的配置

http {

        server {

            listen 80;
            server_name hostName;
            rewrite ^(.*) https://$server_name$1 permanent;
        }

        server {

            listen    443 ssl;
            server_name hostName;
            ssl on;
            # SSL證書會(huì)插入到這里

            # 完整根目錄
            location / {

                root   /*/*/*;
                index  index.html;

            }

            # 反向代理V2EX API到本地,解決跨域問題
            location /api/ {

                proxy_set_header  X-Real-IP  $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_pass https://www.v2ex.com/api/;

            }

        }
...
4.2 啟用HTTPS
sudo apt-get update  // 更新軟件源
sudo apt-get install software-properties-common  // 安裝
sudo add-apt-repository ppa:certbot/certbot  // 添加倉(cāng)庫(kù)
sudo apt-get update  // 更新軟件源
sudo apt-get install python-certbot-nginx // 安裝

sudo certbot --nginx  // 生成證書(自動(dòng)添加到Nginx)
sudo certbot --nginx certonly  // 生成證書(手動(dòng)添加到Nginx)

4.3 使用PM2部署項(xiàng)目
sudo apt-get install pm2  // 安裝pm2
4.4 開啟阿里云外網(wǎng)訪問

在安全組里添加需要放行的NodeJS項(xiàng)目端口即可。

五、踩坑記錄 5.1 數(shù)據(jù)庫(kù)導(dǎo)入失敗

導(dǎo)入數(shù)據(jù)庫(kù)的時(shí)候,有一個(gè)Collection沒有導(dǎo)入成功

Assertion failure amt == (size_t)( size - 4 ) src/mongo/tools/tool.cpp 330

解決方案

把報(bào)錯(cuò)的Collection多帶帶導(dǎo)出,然后重新導(dǎo)入到新服務(wù)器的數(shù)據(jù)庫(kù)
5.2 PM2部署失敗

運(yùn)行下面的代碼會(huì)失敗

pm2 start -i 0 --name test ./bin/www

解決方案

使用fork模式啟動(dòng)

pm2 start --name nchat3 ./bin/www
參考連接

讓NPM從淘寶鏡像更新模塊

MongoDB備份和恢復(fù)

Ubuntu下的Nginx配置HTTPS

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/19064.html

相關(guān)文章

  • NodeJS項(xiàng)目遷移UbuntuNodeJS環(huán)境部署

    摘要:前言之前做的幾個(gè)項(xiàng)目都托管在阿里云服務(wù)器,但是最近要到期了。環(huán)境部署折騰了一天,其中也遇到幾個(gè)坑。項(xiàng)目遷移歷時(shí)一天,兩臺(tái)服務(wù)器的系統(tǒng)都是位。 前言 之前做的幾個(gè)項(xiàng)目都托管在阿里云服務(wù)器,但是最近要到期了。想著到底要不要續(xù)期,畢竟100/月。后面看著阿里云有個(gè)活動(dòng),800/三年。果斷買下。環(huán)境部署折騰了一天,其中也遇到幾個(gè)坑。 目錄 一、安裝環(huán)境 1.1 安裝NodeJS環(huán)境 ...

    source 評(píng)論0 收藏0
  • nodejs服務(wù)器部署教程一

    摘要:第一篇教程緊緊讓你輸出一個(gè)環(huán)境介紹服務(wù)器環(huán)境位本地環(huán)境位連接工具安裝和基本配置我的是在阿里云買的,購(gòu)買的時(shí)候鏡像選擇,現(xiàn)在在搞活動(dòng)比較便宜,我買的香港地區(qū)的不用備案,購(gòu)買后本地打開,點(diǎn)擊,輸入確定,輸入,然后輸入密碼,會(huì)看到下面的界面連接遠(yuǎn) 第一篇教程緊緊讓你輸出一個(gè)hello world 環(huán)境介紹 服務(wù)器環(huán)境:ubuntu(16.04)64位本地環(huán)境:windows10 64位連接工...

    Hegel_Gu 評(píng)論0 收藏0
  • 公司項(xiàng)目NODEJS實(shí)踐0.1[ ubuntu,nodejs,nginx...]

    摘要:創(chuàng)建成功后進(jìn)入文件夾執(zhí)行執(zhí)行作用創(chuàng)建文件,維護(hù)項(xiàng)目的依賴文件解釋創(chuàng)建文件執(zhí)行作用用系統(tǒng)的編輯器打開文件。我的技術(shù)新群上一篇前后端分離項(xiàng)目實(shí)踐分析下一篇公司項(xiàng)目實(shí)踐 一、前言 前端如何獨(dú)立用nodeJs實(shí)現(xiàn)一個(gè)簡(jiǎn)單的注冊(cè)、登錄功能,是不是只用nodejs+sql就可以了?其實(shí)是可以實(shí)現(xiàn),但離實(shí)際應(yīng)用還有距離,那要怎么做才是實(shí)際可用的。 網(wǎng)上有很多nodeJs的示例,包括和 sql /...

    cppprimer 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<