Forever +nginx部署Node站點

最近入手了一款最便宜的騰訊雲服務器,主要用來部署本身的我的博客以及學習一些linux知識,從而全方面瞭解掌握web技術。強烈建議前端人員擁有一個屬於本身的服務器。在寫此文章以前,個人雲服務器已經安裝好Mysql以及node, nginx等。下面以部署node網站爲例,講解幾個常見的場景html

  1. 線程持久運行

通常來講,咱們在window cmd上經過node index.js啓動一個服務器,只要不關閉,就能夠一直訪問和調用接口。可是在linux上每每若是長時間不操做或者你要執行其餘操做時候,你的node服務就會斷開,用戶也不能訪問你的網站了。怎麼辦?咱們能夠安裝forever模塊來解決。前端

npm install forever -g // 全局安裝forever模塊
複製代碼

由原先的啓動方式node index.js 改成 forever start index.js便可,下面列出幾個常見命令node

forever list // 列出當前全部運行的服務
forever start -w index.js // 文件改動自動重啓
forever stopall // 中止全部服務
forever stop app.js  //中止其中一個node App 
forever stop [id]  // forever list 找到對應的id,而後
複製代碼

固然還有許多命令,能夠查閱相關模塊。通常來講最簡單的使用方式就是:linux

forever start index.js
複製代碼

這樣即便咱們切換到其餘linux路徑時或者退出時,node服務仍是存在的,即別人仍是能夠訪問你的網站啦。nginx

  1. 配置nginx

nginx是一個由俄羅斯人開發的反向代理服務器,現在已經被全世界許多公司所使用。關於nginx的介紹以及安裝能夠本身查閱資料或者到菜鳥教程快速學習一下。這裏個人linux已經安裝好了nginx了.
下面我要使用nginx來代理剛剛forever start index.js啓動的http://localhost:8089了,即經過個人域名來訪問http://localhost:8089 這個網站了. 查看nginx配置文件路徑web

find / -name nginx.conf
複製代碼

切換到裏面進入修改裏面配置sql

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 {
    }
}

複製代碼

退出檢查配置是否正確express

nginx -t
複製代碼

從新加載nginxnpm

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);//使用跨域中間件
複製代碼

關於跨域問題,後面的博客會有詳細講解!

相關文章
相關標籤/搜索