[英]Raspberry Pi Acces Point - How to connect to port 80 of client
[英]How to run Django Web app on port 443 and 80 linux - Ubuntu or Raspberry PI?
我對 Django 很陌生。 我想我不能將 django 應用程序作為 sudo 運行,因為所有與 pip 相關的模塊都是為用戶安裝的,而不是為 sudo 用戶安裝的。 因此,這是一種基本問題,例如如何運行可以偵聽端口 80 和端口 443 的 django 應用程序。
所以,到目前為止我已經嘗試過以下選項 - 即路由前 - NAT
我使用以下命令運行我的應用程序 -
$python manage.py runserver
Performing system checks...
System check identified no issues (0 silenced).
You have 15 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
September 13, 2018 - 03:04:41
Django version 2.1.1, using settings 'WebBlogger.settings'
Starting development server at http://127.0.0.1:8000/
接下來,這是我的 iptables 設置,但對我沒有任何作用
$sudo iptables -t nat --line-numbers -n -L
Chain PREROUTING (policy ACCEPT)
num target prot opt source destination
1 DOCKER all -- 0.0.0.0/0 0.0.0.0/0 ADDRTYPE match dst-type LOCAL
2 REDIRECT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 redir ports 8000
Chain INPUT (policy ACCEPT)
num target prot opt source destination
Chain OUTPUT (policy ACCEPT)
num target prot opt source destination
1 DOCKER all -- 0.0.0.0/0 !127.0.0.0/8 ADDRTYPE match dst-type LOCAL
Chain POSTROUTING (policy ACCEPT)
num target prot opt source destination
1 MASQUERADE all -- 172.17.0.0/16 0.0.0.0/0
2 RETURN all -- 192.168.122.0/24 224.0.0.0/24
3 RETURN all -- 192.168.122.0/24 255.255.255.255
4 MASQUERADE tcp -- 192.168.122.0/24 !192.168.122.0/24 masq ports: 1024-65535
5 MASQUERADE udp -- 192.168.122.0/24 !192.168.122.0/24 masq ports: 1024-65535
6 MASQUERADE all -- 192.168.122.0/24 !192.168.122.0/24
Chain DOCKER (2 references)
num target prot opt source destination
1 RETURN all -- 0.0.0.0/0 0.0.0.0/0
我做了 http:// 並且我看到連接被拒絕。 我不知道如何調試 NAT 的東西,無論它是否真的命中 NAT。 我該如何調試以及正確的解決方案是什么?
在理想的世界中,您將需要一個網絡服務來與您的 Django 交談。
Web server (port 80/443) -> gunicorn (wigs) -> Django (port 8000)
如果你只是想讓 Django 開發服務器在 80 上運行,那么試試
python manage.py runserver 0.0.0.0:80
並確保沒有其他進程正在使用端口 80。
您不直接與 Django 應用程序對話。 雖然 Django 有一個通過 runserver 命令可用的簡單開發服務器,但它只用於開發工作。
您想要的是設置一個 WSGI 服務器來運行您的應用程序和一個 Web 服務器來接受實際用戶請求並將它們代理到 WSGI。 常用的WSGI服務器(不用擔心WSGI是什么)是gunicorn和uWSGI。 兩者都可以使用 PIP 安裝,您不必將它們安裝為與您的應用程序相同的用戶。 Gunicorn 更容易使用,所以我會推薦那個。 現在最常見的 Web 服務器是 Nginx。
此外,您應該將您的應用程序打包到一個虛擬環境中,這樣您就可以將其與所有依賴項打包在一起,而無需依賴安裝了所有內容的特定系統。
這是有關如何執行此操作的有些過時的指南。 不過它應該是最准確的,並且是一個很好的起點https://www.digitalocean.com/community/tutorials/how-to-set-up-django-with-postgres-nginx-and-gunicorn-on-ubuntu -14-04
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.