哈囉,我們又見面了,今天來讓我們做的 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.io
或 http://6611a1e3.ngrok.io
這兩個網址,來連接到我的網站,而且有趣的是,這個網址可以被任何其他網域給存取到,也就是說,這時候我丟給我朋友這兩串其中一串網址,他就看得到我的網站了 !
沒錯,真的很醜,官方也能讓你自訂網域,可是這是 ngrok
的付費功能,Basic 方案是以年費 60 美金來算 (不給拆月租),一年一千八台幣左右,不貴,對於懶人想要在本機架站的話,這真的是一個可以考慮的方案,畢竟它的操作方式真的包得很簡單。
付費後,就可以用 $ ngrok http -hostname=mywebsite.com 8000
,把我本地端 8000 port 導到我們自己的網域去,非常簡單方便,不過網域還是要另外租拉。
可惜 RS 現在是個無業遊民,沒錢可是有的是時間 XD
之前是因為要寫 Line ChatBot 才碰到 ngrok
,用來寫個簡單的 demo 挺好用的,把 webhook url 綁定就可以開始開發了,缺點就是每次重啟 ngrok
,都要去修改 webhook url,有點麻煩。
今天的內容比較短,因為我最近換了一台新電腦,需要多花點時間跟它相處一下 XD
我是 RS,這是我的 不做怎麼知道系列 文章,我們 明天見。
ngrok缺點就是他有一定的時間會自己變更那串網址而且電腦要一直開著就是你上述所說的電費問題。
GCP也有經濟實惠的方式(只是有一點麻煩)
我目前都是用GCP先建立免洗的gmail
然後GCP有一年 or 免費100美金的額度
然後因為窮也沒錢買domain就用ngrok架設在gcp裡面
時間快到的時候再把原本的快照移轉過去新帳號
以上是我最省錢的做法(應該說沒花錢)
ngrok缺點就是他有一定的時間會自己變更那串網址而且電腦要一直開著就是你上述所說的電費問題。
-> 原來是過一段時間會換網址喔,我以為是只有重開 ngrok 才會換
ngrok架設在gcp裡面
-> 你是用 GCP 的 app engine 嗎? 我很好奇除了 app engine 之外其他的服務可以怎麼用
以上是我最省錢的做法(應該說沒花錢)
-> 我也是正在尋求最省錢的做法 XD
我也想學+1
發現我沒回到
你是用 GCP 的 app engine 嗎? 我很好奇除了 app engine 之外其他的服務可以怎麼用
我是用 Compute Engine~ 裡面再架設 ngrok
然後隨時關注剩餘扣達然後快結束之後把 VM快照
轉移到新的帳號 (週而復始)
不過還是建議不差一點點錢可以考慮用付費的方式。
看需求啦~ 不然 Heroku 也很好用 XD
不過最近我是用 AWS的 ec2 其實免費套餐好好控管
一個月可能幾乎不用錢
或是朋友推過 linode 最低方案一個月也只要 $150