iT邦幫忙

0

關於Django架站的一些問題

抱歉 ... 問題可能會有點多

有些疑問想懇請解惑,感謝各位!

(詳盡敘述冗長,可拉至最底下有統整問題內容)

目前所知Django要架站有這些方式:

Apache + WSGI
Nginx + uWSGI
Heroku
AWS

有點搞混之間的關係 ....


版上文章:
https://ithelp.ithome.com.tw/questions/10185757

提到:
runserver可以啟動一個非生產等級網站,沒有資安和效能考量
(所以把網站拉到Apache上)

那Apache跟這三者Nginx、Heroku、AWS是一樣的東西 ?

是一個Web Server ?

目前現有的環境是這樣

有一組固定IP,電腦接在數據機上

如果執行runserver 192.168.1.XX:8000
透過NAT轉址把192....:8000轉成固定IP:80

在網頁上輸入:固定IP或192....:8000,可以呈現網頁

只是會整個介面跑掉,就像這篇拉到下面的圖一樣:
https://www.ptt.cc/bbs/Python/M.1433754819.A.405.html

但是如果不轉址,直接輸入127.0.0.1:8000,介面則會正常

而他是把網站拉到Apache上才變得那樣,那為什麼轉址成固IP也會這樣呢 ?

而那篇ptt文章也是介面跑掉,
網友請他繼續照著:How to use Django with Apache and mod_wsgi做
介面會恢復

所以這三個WSGI、uWSGI、mod_wsgi應該是一樣的東西

但是什麼他們的作用是什麼呢 ... ? 有了這個介面就不會跑掉 ?


最近採用申請AWS帳號

並透過此影片嘗試架站:https://www.youtube.com/watch?v=QjrfUO91wfc

排除了很多錯誤後,終於執行到最後一行

但是輸入AWS所給的Public IP

顯示:

502 Bad Gateway


nginx/1.10.3 (Ubuntu)

後來改照著這影片:
https://www.youtube.com/watch?v=Xlp9G137-MI

成功將網頁架上去

不知道有沒有前輩使用AWS架站,是乎只有1年的免費期限
那請問如果後續期限到了如果選擇付費方案該怎麼選擇呢?

而原本以為他是提供一個web server,

但是照上面影片是乎AWS只是提供一個虛擬機器 (?)
(像影片安裝Ubuntu作業系統,Putty連線架站)

是利用Nginx作為Web Server + gunicorn,
所以AWS只是一台虛擬機? gunicorn是如同WSGI、uWSGI、mod_wsgi嚕

還是AWS所提供的Web Server是這個 ?:

https://docs.aws.amazon.com/zh_cn/elasticbeanstalk/latest/dg/create-deploy-python-django.html

但這個做到:

eb init -p python-2.7 django-tutorial
(我輸入的是:python-3.5)

跟網頁不同,顯示需要(aws-access-id)、(aws-secret-key)
找不到在哪就卡住了 ...


而看版上似乎推薦:uwsgi + nginx

但是乎得用Ubuntu系統

請問如果要在本機Windows架站的方法是用Apache嗎?
還是IIS的Web Server呢?

那把網站架在Apache上,本機是要開著 ~?
(像AWS那樣提供Ubuntu主機運行著)

那要runserver一樣執行在背景中嗎 ?
(因為怕電腦斷掉網站就掛了)


問題有點多統整一下:

  1. Apache跟這三者Nginx、Heroku、AWS是一樣的東西 ? 是一個網站伺服器

  2. 以NAT將虛擬IP轉址成固IP,或直接Runserver 虛擬IP,介面為什麼會跑掉 (runserver 127.0.0.1:8000不會)

  3. 這三個WSGI、uWSGI、mod_wsgi應該是一樣的東西,但是什麼他們的作用是什麼呢? 有了這個介面就不會跑掉 ?

  4. AWS架站,是乎只有1年的免費期限
    那請問如果後續期限到了如果選擇付費方案該怎麼選擇呢?

  5. AWS所提供的Web Server是這個 ?:

https://docs.aws.amazon.com/zh_cn/elasticbeanstalk/latest/dg/create-deploy-python-django.html

那(aws-access-id)、(aws-secret-key)是哪裡獲取呢

  1. 請問如果要在本機Windows架站的方法是用Apache嗎? 還是 IIS的Web Server呢? 那把網站架在Apache上,本機是要開著 ~? 而要runserver在背景執行嗎?

  2. 目前是想要在本機Windows系統架站,然後利用中華電信給的固定IP讓別人連線到該網站,請問該利用哪種方法呢~?

Apache + WSGI
Nginx + uWSGI
Heroku
AWS

目前理解是:
前兩者是不是電腦要開著當背景架構? 但需要runserver運行在背景嗎?
後兩者則提供雲端空間架在他們雲端上,AWS提供1年免費,Heroku也是嗎?

利用AWS付費也是可以,但電腦常開著所以AWS如果是提供一台雲端主機那應該不需要

只是怕Apache等架站方法,要在電腦背景運行東西(像runserver那樣)

如果運行斷了,網站就掛了

黃彥儒 iT邦好手 1 級 ‧ 2018-06-29 14:48:27 檢舉
我跟你用說的好了= =
請私訊我........
或是找我FB:https://www.facebook.com/r1235613

尚未有邦友回答

立即登入回答