最近入手了一款最便宜的騰訊雲伺服器,主要用來部署自己的個人部落格以及學習一些liunx知識,從而全方面瞭解掌握web技術。強烈建議前端人員擁有一個屬於自己的伺服器。在寫此文章之前,我的雲伺服器已經安裝好Mysql以及node, nginx等。下面以部署node網站為例,講解幾個常見的場景
-
執行緒持久執行
一般來說,我們在window cmd上通過node index.js啟動一個伺服器,只要不關閉,就可以一直訪問和呼叫介面。但是在linux上往往如果長時間不操作或者你要執行其他操作時候,你的node服務就會斷開,使用者也不能訪問你的網站了。怎麼辦?我們可以安裝forever模組來解決。
npm install forever -g // 全域性安裝forever模組
複製程式碼
由原先的啟動方式node index.js 改為 forever start index.js即可,下面列出幾個常見命令
forever list // 列出當前所有執行的服務
forever start -w index.js // 檔案改動自動重啟
forever stopall // 停止所有服務
forever stop app.js //停止其中一個node App
forever stop [id] // forever list 找到對應的id,然後
複製程式碼
當然還有許多命令,可以查閱相關模組。一般來說最簡單的使用方式就是:
forever start index.js
複製程式碼
這樣即使我們切換到其他linux路徑時或者退出時,node服務還是存在的,即別人還是可以訪問你的網站啦。
-
配置nginx
nginx是一個由俄羅斯人開發的反向代理伺服器,如今已經被全世界許多公司所使用。關於nginx的介紹以及安裝可以自己查閱資料或者到菜鳥教程快速學習一下。這裡我的linux已經安裝好了nginx了.
下面我要使用nginx來代理剛剛forever start index.js啟動的http://localhost:8089了,即通過我的域名來訪問http://localhost:8089 這個網站了.
檢視nginx配置檔案路徑
find / -name nginx.conf
複製程式碼
切換到裡面進入修改裡面配置
server {
listen 80; # 監聽埠 直接配置80即可
server_name hellocode.xyz; # 輸入域名會跳轉到 http://localhost:8089
include /etc/nginx/default.d/*.conf;
location / {
proxy_pass http://118.89.33.75:8089; # 你的node網站應用
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
複製程式碼
退出檢查配置是否正確
nginx -t
複製程式碼
重新載入nginx
nginx -s reload
複製程式碼
開啟瀏覽器 輸入網址即可以訪問網站啦 !
在訪問過程之中可能會遇到跨域問題,那麼就需要node端設定支援跨域,以express框架來說,index.js中自定義一箇中介軟體
var allowCors = function(req, res, next) {
res.header('Access-Control-Allow-Origin', req.headers.origin);
res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,OPTIONS');
res.header('Access-Control-Allow-Headers', 'Content-Type');
res.header('Access-Control-Allow-Credentials','true');
next();
};
app.use(allowCors);//使用跨域中介軟體
複製程式碼
關於跨域問題,後面的部落格會有詳細講解!