iT邦幫忙

1

[不做怎麼知道系列之Android開發者的30天後端養成故事 Day16] - 網站上線拉 #Django #LocalHosting #ngrok

Sam 2020-02-24 16:39:296843 瀏覽

https://ithelp.ithome.com.tw/upload/images/20200224/20124548jJmEL4P8lc.png

哈囉,我們又見面了,今天來讓我們做的 Django 半成品電商網站上線啦 !

Hosting (託管)

也就是要把你的網站放在哪裡 ? 那麼有哪些地方可以放呢 ?

自己費時費力但省點錢,把網站放在自己在使用的電腦

這台電腦有可能就是你的開發用的機器,這種方式最簡單,你開發完,就直接把你的網站服務開在某一個 port,但你需要一個固定 IP,加上一個 DNS 把你的固定 IP 轉換成給人類看的懂的網址。固定 IP 也是需要付給 Network Provider 費用,自己買 DNS 也是一個費用,加上自己要付電費、維護整台電腦正常運作、維護網路穩定,其實很麻煩,算上這些工時也是挺貴的哈哈。

每個月花點錢,把網站放到雲端平台上

平台就有超多種選擇,像 Amazon Web Services(AWS)、Google Cloud Platform(GCP) 以及其他大大小小的平台,而每個平台內都還有細項的方案選擇,依照你的預算、網站架構、網站規模、你的網站框架、程式語言衍伸出無數種排列組合,需要多花點時間和心力來挑選,還有多繳點學費 XD,才能找到越來越適合你的平台與方案。

今天,我們先試試看最"簡單"的架站

也就是用自己的電腦先架看看,感受一下全部自己來的話,到底有多麻煩 XD

Django 跑起來 (預設 8000 port)

$ python manage.py runserver

    Watching for file changes with StatReloader
    Performing system checks...
    
    System check identified no issues (0 silenced).
    February 24, 2020 - 14:46:19
    Django version 2.2.10, using settings 'mysite.settings'
    Starting development server at http://127.0.0.1:8000/
    Quit the server with CTRL-BREAK.
    [24/Feb/2020 14:46:28] "GET / HTTP/1.1" 200 17676

可是這時候,我們的網站現在,只能在我本機端瀏覽 127.0.0.1:8000 而已,也就是說,如果是我的朋友現在問我「網站寫得怎麼樣了」,我丟給他這串網址 127.0.0.1:8000,我那個朋友一定傻眼貓咪,因為這 IP 不對外開放,那麼該怎麼辦呢 !?

自己架站,哪裡麻煩 ?

  • 確保電腦正常
    • 作業系統指令操作
    • 作業系統升級 和 套件相依
    • 硬體年限 和 硬體升級
  • 確保網路正常
    • 網路觀念
    • 網路安全防護
  • 替網站招攬更多流量
    • 分析流量
    • 搜尋引擎優化(SEO)

要做的事情包山包海,你需要面對的事情太多了,這不是你會寫個簡單的網站之後就可以解決的,要瞭解有多複雜,你可以逛過一次 鳥哥的 Linux 私房菜 的 基本架站流程,你應該就會打消自己架站的念頭 XD

今天我們不管 ! 就是要自己架看看

使用 ngrok 神器,幫我們把本地的 port 對外開放

ngrok 官方的宣傳語

Spend more time programming. One command for an instant, secure URL to your localhost server through any NAT or firewall.

ngrok 希望開發者花多一點時間來寫程式,所以 ngrok 的使命就是,把 localhost server 對外開放成安全的網址。

使用 ngrok 的前置作業

ngrok 的 Download 頁面,下載下來是 ngrok.exe,如果要方便使用它,就把它放到你比較少動到的資料夾,然後把這資料夾加到環境變數裡。

怎麼使用 ngrok ?

只要簡單一行

$ ngrok http 8000 (已經加到環境變數)

ngrok by @inconshreveable                                                                                                        (Ctrl+C to quit)

Session Status                online
Session Expires               7 hours, 31 minutes
Version                       2.3.35
Region                        United States (us)
Web Interface                 http://127.0.0.1:4040
Forwarding                    http://6611a1e3.ngrok.io -> http://localhost:8000
Forwarding                    https://6611a1e3.ngrok.io -> http://localhost:8000

Connections                   ttl     opn     rt1     rt5     p50     p90
                              132     0       0.00    0.01    1.26    200.25

HTTP Requests
-------------

GET /                          200 OK

這時候,我就能使用 https://6611a1e3.ngrok.iohttp://6611a1e3.ngrok.io 這兩個網址,來連接到我的網站,而且有趣的是,這個網址可以被任何其他網域給存取到,也就是說,這時候我丟給我朋友這兩串其中一串網址,他就看得到我的網站了 !

在電腦上可瀏覽這個網址 (任意網域)

https://ithelp.ithome.com.tw/upload/images/20200224/201245483BRNYcJfyw.png

在手機端使用 4G 也能存取到這個網站

https://ithelp.ithome.com.tw/upload/images/20200224/20124548siXzodhGMg.jpg

這網址長得好醜喔 !

沒錯,真的很醜,官方也能讓你自訂網域,可是這是 ngrok 的付費功能,Basic 方案是以年費 60 美金來算 (不給拆月租),一年一千八台幣左右,不貴,對於懶人想要在本機架站的話,這真的是一個可以考慮的方案,畢竟它的操作方式真的包得很簡單。

https://ithelp.ithome.com.tw/upload/images/20200224/20124548ncMvcgRtPL.png

付費後,就可以用 $ ngrok http -hostname=mywebsite.com 8000,把我本地端 8000 port 導到我們自己的網域去,非常簡單方便,不過網域還是要另外租拉。

可惜 RS 現在是個無業遊民,沒錢可是有的是時間 XD

單日心得總結

之前是因為要寫 Line ChatBot 才碰到 ngrok,用來寫個簡單的 demo 挺好用的,把 webhook url 綁定就可以開始開發了,缺點就是每次重啟 ngrok,都要去修改 webhook url,有點麻煩。

今天的內容比較短,因為我最近換了一台新電腦,需要多花點時間跟它相處一下 XD

我是 RS,這是我的 不做怎麼知道系列 文章,我們 明天見。


https://ithelp.ithome.com.tw/upload/images/20200219/20124548meDsnCPamL.png


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 則留言

0
Robin
iT邦新手 2 級 ‧ 2020-02-24 22:49:25

ngrok缺點就是他有一定的時間會自己變更那串網址而且電腦要一直開著就是你上述所說的電費問題。
GCP也有經濟實惠的方式(只是有一點麻煩)
我目前都是用GCP先建立免洗的gmail
然後GCP有一年 or 免費100美金的額度
然後因為窮也沒錢買domain就用ngrok架設在gcp裡面
時間快到的時候再把原本的快照移轉過去新帳號/images/emoticon/emoticon02.gif
以上是我最省錢的做法(應該說沒花錢)

Sam iT邦新手 4 級 ‧ 2020-02-25 13:34:58 檢舉

ngrok缺點就是他有一定的時間會自己變更那串網址而且電腦要一直開著就是你上述所說的電費問題。

-> 原來是過一段時間會換網址喔,我以為是只有重開 ngrok 才會換

ngrok架設在gcp裡面

-> 你是用 GCP 的 app engine 嗎? 我很好奇除了 app engine 之外其他的服務可以怎麼用

以上是我最省錢的做法(應該說沒花錢)

-> 我也是正在尋求最省錢的做法 XD

paul12999 iT邦新手 5 級 ‧ 2020-09-15 21:24:29 檢舉

我也想學+1

Robin iT邦新手 2 級 ‧ 2020-09-16 00:09:08 檢舉

發現我沒回到 /images/emoticon/emoticon02.gif

你是用 GCP 的 app engine 嗎? 我很好奇除了 app engine 之外其他的服務可以怎麼用

我是用 Compute Engine~ 裡面再架設 ngrok
然後隨時關注剩餘扣達然後快結束之後把 VM快照
轉移到新的帳號 (週而復始)
不過還是建議不差一點點錢可以考慮用付費的方式。

看需求啦~ 不然 Heroku 也很好用 XD
不過最近我是用 AWS的 ec2 其實免費套餐好好控管
一個月可能幾乎不用錢
或是朋友推過 linode 最低方案一個月也只要 $150

0
paul12999
iT邦新手 5 級 ‧ 2020-09-15 21:32:37

感謝RS大大, 師父你是神媽
解決我的問題
最近改目標也是往全端工程師
以後還再請教了

我要留言

立即登入留言