抱歉 ... 問題可能會有點多
有些疑問想懇請解惑,感謝各位!
(詳盡敘述冗長,可拉至最底下有統整問題內容)
目前所知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一樣執行在背景中嗎 ?
(因為怕電腦斷掉網站就掛了)
問題有點多統整一下:
Apache跟這三者Nginx、Heroku、AWS是一樣的東西 ? 是一個網站伺服器
以NAT將虛擬IP轉址成固IP,或直接Runserver 虛擬IP,介面為什麼會跑掉 (runserver 127.0.0.1:8000不會)
這三個WSGI、uWSGI、mod_wsgi應該是一樣的東西,但是什麼他們的作用是什麼呢? 有了這個介面就不會跑掉 ?
AWS架站,是乎只有1年的免費期限
那請問如果後續期限到了如果選擇付費方案該怎麼選擇呢?
AWS所提供的Web Server是這個 ?:
https://docs.aws.amazon.com/zh_cn/elasticbeanstalk/latest/dg/create-deploy-python-django.html
那(aws-access-id)、(aws-secret-key)是哪裡獲取呢
請問如果要在本機Windows架站的方法是用Apache嗎? 還是 IIS的Web Server呢? 那把網站架在Apache上,本機是要開著 ~? 而要runserver在背景執行嗎?
目前是想要在本機Windows系統架站,然後利用中華電信給的固定IP讓別人連線到該網站,請問該利用哪種方法呢~?
Apache + WSGI
Nginx + uWSGI
Heroku
AWS
目前理解是:
前兩者是不是電腦要開著當背景架構? 但需要runserver運行在背景嗎?
後兩者則提供雲端空間架在他們雲端上,AWS提供1年免費,Heroku也是嗎?
利用AWS付費也是可以,但電腦常開著所以AWS如果是提供一台雲端主機那應該不需要
只是怕Apache等架站方法,要在電腦背景運行東西(像runserver那樣)
如果運行斷了,網站就掛了