摘要:前言之前做的幾個項目都托管在阿里云服務器,但是最近要到期了。環境部署折騰了一天,其中也遇到幾個坑。項目遷移歷時一天,兩臺服務器的系統都是位。
前言
之前做的幾個項目都托管在阿里云服務器,但是最近要到期了。想著到底要不要續期,畢竟100/月。后面看著阿里云有個活動,800/三年。果斷買下。環境部署折騰了一天,其中也遇到幾個坑。
目錄一、安裝環境 1.1 安裝NodeJS環境 1.2 安裝版本控制軟件Git 1.3 安裝MongoDB數據庫 1.4 安裝Nginx 二、導入數據 三、安裝項目 四、部署項目 4.1 Nginx配置 4.2 啟用HTTPS 4.3 使用PM2部署項目 4.4 開啟阿里云外網訪問 五、踩坑記錄 5.1 數據庫導入失敗 5.2 PM2部署失敗一、安裝環境
為了保證項目運行不出問題,在新服務器安裝和原服務器一致的環境。項目遷移歷時一天,兩臺服務器的系統都是Ubuntu 16.04 64位。
1.1 安裝NodeJS環境自帶的NodeJS版本是4.2.6,版本有點低,使用npm的n模塊更新到最新版。
安裝NPM
sudo apt-get install npm
使用淘寶源
阿里云訪問npm的速度非常慢,這里通過設置,讓NPM從淘寶鏡像更新模塊
npm set registry https://registry.npm.taobao.org // 設置從淘寶鏡像更新 npm set disturl https://npm.taobao.org/dist npm cache clean // 清除緩存
更新NodeJS
npm install n // 更新NodeJS的模塊 n stable // 更新到最新穩定版 node -v // v8.2.11.2 安裝版本控制軟件Git
sudo apt-get install git1.3 安裝MongoDB數據庫
sudo apt-get install mongodb // 安裝MongoDB service mongodb start // 啟動服務 mongod // 進入交互式控制臺,能加入說明啟動成功,ctrl+c退出1.4 安裝Nginx
sudo apt-get install nginx // 安裝Nginx二、導入數據
把以前的數據庫完整的遷移過來
從源服務器導出數據庫
mongodump -h localhost --port 27017 -d test -o database_dump
導入MongoDB數據庫
mongorestore -d test database_dump/test三、安裝項目
項目是在Github開源,直接拉取就行。
git clone https://github.com/bergwhite/nchat.git // 克隆項目 cd nchat // 進入目錄 npm install 安裝模塊 npm run build四、部署項目 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證書會插入到這里 # 完整根目錄 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 // 添加倉庫 sudo apt-get update // 更新軟件源 sudo apt-get install python-certbot-nginx // 安裝 sudo certbot --nginx // 生成證書(自動添加到Nginx) sudo certbot --nginx certonly // 生成證書(手動添加到Nginx)4.3 使用PM2部署項目
sudo apt-get install pm2 // 安裝pm24.4 開啟阿里云外網訪問
在安全組里添加需要放行的NodeJS項目端口即可。
五、踩坑記錄 5.1 數據庫導入失敗導入數據庫的時候,有一個Collection沒有導入成功
Assertion failure amt == (size_t)( size - 4 ) src/mongo/tools/tool.cpp 330
解決方案
把報錯的Collection多帶帶導出,然后重新導入到新服務器的數據庫5.2 PM2部署失敗
運行下面的代碼會失敗
pm2 start -i 0 --name test ./bin/www
解決方案
使用fork模式啟動
pm2 start --name nchat3 ./bin/www參考連接
讓NPM從淘寶鏡像更新模塊
MongoDB備份和恢復
Ubuntu下的Nginx配置HTTPS
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/19064.html
摘要:前言之前做的幾個項目都托管在阿里云服務器,但是最近要到期了。環境部署折騰了一天,其中也遇到幾個坑。項目遷移歷時一天,兩臺服務器的系統都是位。 前言 之前做的幾個項目都托管在阿里云服務器,但是最近要到期了。想著到底要不要續期,畢竟100/月。后面看著阿里云有個活動,800/三年。果斷買下。環境部署折騰了一天,其中也遇到幾個坑。 目錄 一、安裝環境 1.1 安裝NodeJS環境 ...
摘要:第一篇教程緊緊讓你輸出一個環境介紹服務器環境位本地環境位連接工具安裝和基本配置我的是在阿里云買的,購買的時候鏡像選擇,現在在搞活動比較便宜,我買的香港地區的不用備案,購買后本地打開,點擊,輸入確定,輸入,然后輸入密碼,會看到下面的界面連接遠 第一篇教程緊緊讓你輸出一個hello world 環境介紹 服務器環境:ubuntu(16.04)64位本地環境:windows10 64位連接工...
摘要:創建成功后進入文件夾執行執行作用創建文件,維護項目的依賴文件解釋創建文件執行作用用系統的編輯器打開文件。我的技術新群上一篇前后端分離項目實踐分析下一篇公司項目實踐 一、前言 前端如何獨立用nodeJs實現一個簡單的注冊、登錄功能,是不是只用nodejs+sql就可以了?其實是可以實現,但離實際應用還有距離,那要怎么做才是實際可用的。 網上有很多nodeJs的示例,包括和 sql /...
閱讀 634·2021-09-22 10:02
閱讀 6323·2021-09-03 10:49
閱讀 564·2021-09-02 09:47
閱讀 2151·2019-08-30 15:53
閱讀 2928·2019-08-30 15:44
閱讀 900·2019-08-30 13:20
閱讀 1812·2019-08-29 16:32
閱讀 888·2019-08-29 12:46