阿里服務器之項目線上部署過程

在搭建web全棧的過程當中,最令我頭疼的就是項目的部署與上線,這個過程雖然簡單,可是對於全棧菜鳥的我來講真的是個大坑,可是我仍是去嘗試,終於經過各類文檔、請教與實踐中完成了線上部署,在此作一下記錄與總結

1、購買服務器

  • 服務器選擇:服務器的品牌有不少,如亞馬遜、阿里雲、騰訊等等,各大廠商之間的產品、服務各不相同,但請儘可能選擇靠譜的產品,在這裏我選擇的是阿里雲,由於阿里雲的服務真的很及時,並且文檔也寫的很詳細,有時候作活動,產品的價格仍是不錯的。
  • 遇到不懂的問題但是先查看阿里雲上的幫助文檔
  • 在詢問了一些前輩以後,購買阿里雲上的Linux系統會相對window server安全係數高一些,只是我的是使用window系統,須要去了解一下linux經常使用的命令語句

2、建立鏈接(實現本機和阿里服務器鏈接)

  • 將本機與服務器鏈接的方法有不少,具體請參考鏈接實例
  • windows環境的是沒法直接鏈接linux系統的,須要在電腦上下載軟件才能夠,通常使用PuTTYxshell(這個軟件是收費的),阿里雲上有PuTTY的使用方法,但我我的是使用xShell方法,感受更加方便與快捷
  • 主機: root
  • 密碼:就是在阿里雲上設置的密碼

3、格式化數據磁盤

  • 官網上對於非I/O優化實例須要格式化磁盤,我的的配置是I/O優化的,因此不須要配置這部分

clipboard.png

4、配置祕鑰

  • 配置祕鑰是爲了實現實例鏈接,更方便的操做服務器,經過分配不一樣權限來使不一樣的管理者來操做服務器上相應的功能
  • ssh的配置與github的配置類似。首先須要在服務器上生成".ssh"文件,而後一路回車,通常ssh會建立在/root的目錄下
ssh-keygen -t rsa -b 4096 -C "xxx@xxx.com"
  • 而後設置ssh代理:其代理 Agent pid 爲 12607
eval "$(ssh-agent -s)"
  • 建立受權文件: 這份文件只對當前的計算機起做用,編輯.ssh文件中的「authorized_keys」文件,保存後提示不可以讀寫該文件,就是權限不夠,先按回車,進入到編輯頁面,再「esc」,再同時按下「shift」,而後輸入「q」退出,再進入就好了,(注:在要操做的當前目錄下能夠不用sudo與該目錄路徑)。打印本機的公鑰「id_rsa.pub"
  • 受權文件並重啓實例
chmod 600 authorized_keys

   sudo service ssh restart

5、搭建node環境

  • 更新系統
sudo apt-get update
  • 安裝相關的模塊與包文件:如git、wget等,能夠根據項目需求進行安裝
sudo apt-get install  git   vim  open  ssl  build-essential   libssl-dev   wget   curl
  • node在服務器上安裝能夠藉助nvm,這個插件依賴於wget模塊,執行下列命令。安裝完成以後會提示須要再開一個shell窗口,才能夠看到nvm版本信息
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash
  • 使用nvm安裝node版本:版本號能夠本身選擇,建議安裝穩定版本會比較方便維護
nvm install v8.9.0
  • 全局安裝淘寶鏡像,可以使npm的下載速度更快,安裝完淘寶以後還得告訴系統咱們增長這個文件
# 淘寶鏡像
npm --registry=http://registry.npm.taobao.org install -g npm

# 安裝文件
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

# 安裝cnpm
npm --registry=http://registry.npm.taobao.org install -g cnpm
  • 搭建好了nodejs環境以後,能夠先嚐試本身搭建服務器,檢查一下服務器時候能夠運行,在搭建服務器的過程當中,我我的遇到了防火牆與安全組問題:ubuntu默認了安裝的時候是沒有配置防火牆的,須要本身配置防火牆。還有須要配置安全組,在阿里雲控制檯中進行配置,添加ip和端口,纔可以訪問到線上服務器。
  • 可使用pm2對阿里上的服務器進行監管,每次上傳文件以後,記得重啓

6、設置反向代理ngnix

  • 安裝ngnix
sudo apt-get install nginx
  • 安裝完後,其目錄在/ect/nginx,及其目錄文件

clipboard.png

  • 編寫nginx的配置文件,當有多個項目對應到多個服務的時候,須要使用nginx使服務實現負載均衡,寫的這個.conf配置文件都會被加載到「/nginx.conf」這個文件夾下,在配置server_name的時候直接寫ip地址就行。也能夠參考這篇文章nginx配置文件詳解
upstream shop {
# Nodejs app upstream
        server 127.0.0.1:9527;
}
# Server on port 80
server {
        listen 80;
        server_name 47.52.43.40; //我的IP地址或者域名

   location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header X-NginX-Proxy true;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_responses 0;
        proxy_set_header Connection "upgrade";
        proxy_max_temp_file_size 0;
        proxy_pass http://47.52.43.40:9527; #設置反向代理較爲重要的一個參數,將本地端口9527轉向server通用入口80端口
        proxy_redirect off;
        proxy_read_timeout 240s;
   }
}
  • 測試配置文件: 當出現ok與success時說明配置的文件配置成功
sudo nginx -t

clipboard.png

  • 重啓nginx
nginx reload

7、安裝mongodb

  • mongodb官網上有ubuntu環境下配置mongodb環境的詳細步驟
# 導入共有鑰匙爲包管理系統使用
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5

# 爲mongodb建立一個列表文件(根據ubuntu版本不一樣,配置也不同,在此演示的是Ubuntu14.04版本)
echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.6 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.6.list

#更新數據庫
sudo apt-get update

#安裝mongdb(這是安裝最新版本的)
sudo apt-get install -y mongodb-org

# 啓動mongod數據庫
sudo service mongod start
  • 當鏈接數據庫出現問題時,能夠查看在mongdb.log日誌
  • mongodb的默認端口是27017,若是想要更改mongodb的端口能夠在mongod.conf文件中進行更改端口,並且須要修改防火牆iptable中的規則,啓動mongodb的時候須要加端口號
mongo --port  端口號

8、上傳文件

  • 對於服務器的基本環境已經配置完成,即可以上傳文件了,在這裏推薦一個上傳文件的工具filezilla,主機是ip地址,用戶名爲root,端口號爲22,而後找到本機的文件與在服務器上的文件目錄,即可直接上傳。

clipboard.png

  • 服務端上傳文件後須要安裝依賴,前端須要將項目打包
相關文章
相關標籤/搜索