<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ## 目標 將?[https://github.com/Ricardo-Li/node-practice-2](https://github.com/Ricardo-Li/node-practice-2)?這個項目部署上 heroku,成為一個線上項目 我部署的在這里?[http://serene-falls-9294.herokuapp.com/](http://serene-falls-9294.herokuapp.com/) ## [](https://github.com/alsotang/node-lessons/tree/master/lesson12#知識點)知識點 1. 學習 heroku 的線上部署([https://www.heroku.com/](https://www.heroku.com/)?) ## [](https://github.com/alsotang/node-lessons/tree/master/lesson12#課程內容)課程內容 ### [](https://github.com/alsotang/node-lessons/tree/master/lesson12#什么是-heroku)什么是 heroku heroku 是弄 ruby 的 paas 起家,現在支持多種語言環境,更甚的是它強大的 add-on 服務。 paas 平臺相信大家都不陌生。Google 有 gae,國內新浪有 sae。paas 平臺相對 vps 來說,不需要你配置服務器,不需要裝數據庫,也不需要理會負載均衡。這一切都可以在平臺上直接獲取。 你只要專注自己的業務,把應用的邏輯寫好,然后發布上去,應用自然就上線了。數據庫方面,如果你用 mysql,那么你可以從平臺商那里得到一個 mysql 的地址、賬號和密碼,直接連接就能用。如果應用的流量增大,需要橫向拓展,則只用去到 paas 平臺的管理頁面,增大服務器實例的數量即可,負載均衡會自動幫你完成。 說起來,我之所以對于 web 開發產生興趣也是因為當年 gae 的關系。那時候除了 gae 之外,沒有別的 paas 平臺,gae 是橫空出世的。有款翻墻的軟件,叫 gappproxy([https://code.google.com/p/gappproxy/](https://code.google.com/p/gappproxy/)?)——可以認為是 goagent 的前身——就是搭建在 gae 上面的,不僅快,而且免費。于是我就很想弄懂這樣一個程序是如何開發的。好在 gappproxy 是開源的,于是我下了源碼來看,那時候才大一,只學過 c,看到那些 python 代碼就凌亂了。于是轉頭也去學 python,后來漸漸發現了 web 開發的樂趣,于是 ruby 和 node.js 也碰碰。后來 goagent 火起來了,我又去看了看它的代碼,發現非常難看,就自己寫了個?[https://github.com/alsotang/keepagent](https://github.com/alsotang/keepagent)?。不過現在回想起來,還是 goagent 的實現比較穩定以及效率高。 heroku 的免費額度還是足夠的,對于 demo 應用來說,放上去是綽綽有余的。各位搞 web 開發的大學生朋友,一定要試著讓你開發的項目盡可能早地去線上跑,這樣你的項目可以被其他人看到,能夠促使你更有熱情地進行進一步開發。這回我們放的是 cnode 社區的爬蟲上去,你其實可以試著為你們學院或者學校的新聞站點寫個爬蟲,提供 json api,然后去申請個微信公共平臺,每天推送學院網站的新聞。這東西輔導員是有需求的,可以做個給他們用。 好了,我們先 clone?[https://github.com/Ricardo-Li/node-practice-2](https://github.com/Ricardo-Li/node-practice-2)?這個項目。由于我們這回講部署,所以代碼就用現成的了,代碼的內容就是 lesson 3([https://github.com/alsotang/node-lessons/tree/master/lesson3](https://github.com/alsotang/node-lessons/tree/master/lesson3)?) 里面的那個爬蟲。 [![](https://box.kancloud.cn/2015-08-03_55bf0feb5defb.png)](https://github.com/alsotang/node-lessons/blob/master/lesson12/1.png) clone 下來以后,我們去看看代碼。代碼中有兩個特殊的地方, 一個是一個叫 Procfile 的文件,內容是: ~~~ web: node app.js ~~~ 一個是 app.js 里面, ~~~ app.listen(process.env.PORT || 5000); ~~~ 這兩者都是為了部署 heroku 所做的。 大家有沒有想過,當部署一個應用上 paas 平臺以后,paas 要為我們干些什么? 首先,平臺要有我們語言的運行時; 然后,對于 node.js 來說,它要幫我們安裝 package.json 里面的依賴; 然后呢?然后需要啟動我們的項目; 然后把外界的流量導入我們的項目,讓我們的項目提供服務。 上面那兩處特殊的地方,一個是啟動項目的,一個是導流量的。 heroku 雖然能推測出你的應用是 node.js 應用,但它不懂你的主程序是哪個,所以我們提供了 Procfile 來指導它啟動我們的程序。 而我們的程序,本來是監聽 5000 端口的,但是 heroku 并不知道。當然,你也可以在 Procfile 中告訴 heroku,可如果大家都監聽 5000 端口,這時候不就有沖突了嗎?所以這個地方,heroku 使用了主動的策略,主動提供一個環境變量`process.env.PORT`?來供我們監聽。 這樣的話,一個簡單 app 的配置就完成了。 我們去?[https://www.heroku.com/](https://www.heroku.com/)?申請個賬號,然后下載它的工具包?[https://toolbelt.heroku.com/](https://toolbelt.heroku.com/)?,然后再在命令行里面,通過?`heroku login`?來登錄。 上述步驟完成后,我們進入?`node-practice-2`?的目錄,執行?`heroku create`。這時候,heroku 會為我們隨機取一個應用名字,并提供一個 git 倉庫給我們。 [![](https://box.kancloud.cn/2015-08-03_55bf0ffa1a123.png)](https://github.com/alsotang/node-lessons/blob/master/lesson12/2.png) 接著,往 heroku 這個遠端地址推送我們的 master 分支: [![](https://box.kancloud.cn/2015-08-03_55bf10077d561.png)](https://github.com/alsotang/node-lessons/blob/master/lesson12/3.png) heroku 會自動檢測出我們是 node.js 程序,并安裝依賴,然后按照 Procfile 進行啟動。 push 完成后,在命令鍵入?`heroku open`,則 heroku 會自動打開瀏覽器帶我們去到相應的網址: [![](https://box.kancloud.cn/2015-08-03_55bf10962ada8.png)](https://github.com/alsotang/node-lessons/blob/master/lesson12/4.png) 到此課程也就結束了。 隨便聊聊 heroku 的 addon 吧。這個 addon 確實是個神奇的東西,反正在 heroku 之外我還沒怎么見到這類概念。這些 addon 提供商,有些提供 redis 的服務,有些提供 mongodb,有些提供 mysql。你可以直接在 heroku 上面進行購買,然后 heroku 就會提供一段相應服務的地址和賬號密碼給你用來連接。 大家可以去?[https://addons.heroku.com/](https://addons.heroku.com/)?這個頁面看看,玲瑯滿目各種應用可以方便接入。之所以這類服務有市場,也是因為亞馬遜的 aws 非常牛逼。為什么這么說呢,因為網絡速度啊。如果現在在國內,你在 ucloud 買個主機,然后用個阿里云的 rds,那么應用的響應速度會因為 mysql 連接的問題卡得動不了。但在 heroku 這里,提供商們,包括 heroku 自己,都是構建在 aws 上面,這樣一來,各種服務的互通其實走的是內網,速度很可以接受,于是各種 addon 提供商就做起來了。 國內的話,其實在阿里云上面也可以考慮這么搞一搞。 完。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看