- 擴展您的網頁應用程式對於成功至關重要。
- Django 很棒,但真正的可擴展性需要 Gunicorn 和 Nginx。
- 這篇文章向您展示如何使用 Gunicorn 和 Nginx 建立可擴展的 Django 應用程式。
- 這篇文章遵循「Kali Linux」。您可以使用任何基於 Linux 的作業系統。
介紹:
- 建立一個可以處理不斷增長的使用者和請求的 Web 應用程式對於任何成功的專案都至關重要。
- Django 是一個強大的 Python 框架,提供了堅實的基礎,但為了真正的可擴展性,您需要利用 Gunicorn 和 Nginx 等工具的強大功能。
- 這篇文章將引導您完成使用 Gunicorn 和 Nginx 設定可擴展的 Django 應用程式的過程,確保您的網站能夠滿足不斷增長的用戶群的需求。
⚙️ 設定 -
- 我在 Linux 中執行此操作。
- 先檢查 python3、pip、nginx 是否安裝。
- 要安裝,請使用此命令(安裝在家庭/桌面或新終端機中)
sudo apt install python3 python3-pip nginx
- 現在建立一個虛擬環境(為此建立新資料夾?)
- 啟動環境
source environment_name/bin/activate # use name created above "environment_name"
- 現在安裝軟體包嗎?在環境中
- django、gunicorn
pip install django pip install gunicorn // or directly install both pip install django gunicorn
創建 Django 項目
- 使用該指令建立Django項目
django-admin startproject myproject # use any name "myproject"
建立 Gunicorn 配置文件
- 使用此指令
nano gunicorn_conf.py # use any name but using same better "gunicorn_conf.py"
- 在「gunicorn_config.py」中加入以下程式碼
import multiprocessing bind = '127.0.0.1:8000' # Django running port/link workers = multiprocessing.cpu_count() * 2 + 1
- 使用「CTRL + o」(儲存)儲存文件,按 ENTER,「CTRL + X」(退出)
- 這將創建工作人員,我們還應該添加 Django 運行連結。 ### 使用 Gunicorn 運行 Django 專案/應用程式
- 先導航到專案資料夾
cd myproject # navigate to Django Project "myproject"
- 現在執行這個指令
gunicorn myapp.wsgi:application -c ../gunicorn_conf.py # here myapp is myproject # here "myapp" is a Django project name, and at last gunicorn_conf.py is a gunicorn configuration file which created above/before.
- 現在在 Django 專案中進行一些更改
- 先更改專案資料夾中的settings.py 中的一些程式碼。目錄 myproject/myproject/settings.py > Django 專案
- 為此,請使用任何程式碼編輯器,例如 VS Code。若要從終端機打開,請使用此命令
code- oss # to open vs code from terminal
- 新增此程式碼
# example code ALLOWED_HOSTS = ['localhost', '0.0.0.0', '127.0.0.1'] # use IP address here
- 在上面的命令中,我們使用了 IP 位址,打開另一個新終端並執行此命令來獲取有關網路的所有資訊。
ifconfig
建立 Nginx 設定檔
- 開啟另一個新終端,執行此指令
sudo nano /etc/nginx/sites-available/myapp # use any name "myapp" # better use vs code instead of nano sudo code- oss /etc/nginx/sites-available/myapp # check code-oss
- 在該 nginx 檔案中加入程式碼
server { listen 80; server_name your_domain.com; # Replace with your domain or IP address # example for aboveline: server_name 'ipaddress' 'another domain' ; location / { proxy_pass http://127.0.0.1:8000; # Gunicorn's default address proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
- 儲存檔案
- 建立符號連結以啟用 Nginx 配置,執行此命令
sudo ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled # change "myapp" to nginx config file name used above
- 就是這樣。 ## 測試:
- 先檢查 Nginx 設定檔是否有語法錯誤。
sudo nginx -t
- 如果沒有任何錯誤,請先使用此指令重新啟動 Nginx
sudo systemctl restart nginx
為 Nginx 設定防火牆
- 開啟新終端,並安裝此軟體包
sudo apt install ufw
- 現在允許 Nginx 通過防火牆
sudo ufw allow 'Nginx Full'
使用說明 -
- 先透過開啟新終端啟動 Nginx
sudo systemctl start nginx
- 現在開始完整的項目,打開終端機並轉到創建並啟動的 virtualenv
gunicorn myapp.wsgi:application -c ../gunicorn_conf.py # in above code "myapp" is a Django project name # last gunicorn_conf.py is a gunicorn configuration file name
- 現在完整的專案開始了。
- 現在您可以使用您的 IP 位址開啟您的 django 專案。
- 導航至瀏覽器並使用您的 IP 位址進行搜尋。
- 要停止 Nginx,請使用此指令
sudo systemctl stop nginx
編碼愉快? - 偷懶
聯絡 DM - Twitter(X)
聯絡信箱 - sanya.san@myyahoo.com
以上是使用 Gunicorn 和 Nginx 建立可擴展的 Django 應用程式的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本教程演示如何使用Python處理Zipf定律這一統計概念,並展示Python在處理該定律時讀取和排序大型文本文件的效率。 您可能想知道Zipf分佈這個術語是什麼意思。要理解這個術語,我們首先需要定義Zipf定律。別擔心,我會盡量簡化說明。 Zipf定律 Zipf定律簡單來說就是:在一個大型自然語言語料庫中,最頻繁出現的詞的出現頻率大約是第二頻繁詞的兩倍,是第三頻繁詞的三倍,是第四頻繁詞的四倍,以此類推。 讓我們來看一個例子。如果您查看美國英語的Brown語料庫,您會注意到最頻繁出現的詞是“th

本文解釋瞭如何使用美麗的湯庫來解析html。 它詳細介紹了常見方法,例如find(),find_all(),select()和get_text(),以用於數據提取,處理不同的HTML結構和錯誤以及替代方案(SEL)

處理嘈雜的圖像是一個常見的問題,尤其是手機或低分辨率攝像頭照片。 本教程使用OpenCV探索Python中的圖像過濾技術來解決此問題。 圖像過濾:功能強大的工具圖像過濾器

Python是數據科學和處理的最愛,為高性能計算提供了豐富的生態系統。但是,Python中的並行編程提出了獨特的挑戰。本教程探討了這些挑戰,重點是全球解釋

本文比較了Tensorflow和Pytorch的深度學習。 它詳細介紹了所涉及的步驟:數據準備,模型構建,培訓,評估和部署。 框架之間的關鍵差異,特別是關於計算刻度的

本教程演示了在Python 3中創建自定義管道數據結構,利用類和操作員超載以增強功能。 管道的靈活性在於它能夠將一系列函數應用於數據集的能力,GE

Python 對象的序列化和反序列化是任何非平凡程序的關鍵方面。如果您將某些內容保存到 Python 文件中,如果您讀取配置文件,或者如果您響應 HTTP 請求,您都會進行對象序列化和反序列化。 從某種意義上說,序列化和反序列化是世界上最無聊的事情。誰會在乎所有這些格式和協議?您想持久化或流式傳輸一些 Python 對象,並在以後完整地取回它們。 這是一種在概念層面上看待世界的好方法。但是,在實際層面上,您選擇的序列化方案、格式或協議可能會決定程序運行的速度、安全性、維護狀態的自由度以及與其他系

Python的statistics模塊提供強大的數據統計分析功能,幫助我們快速理解數據整體特徵,例如生物統計學和商業分析等領域。無需逐個查看數據點,只需查看均值或方差等統計量,即可發現原始數據中可能被忽略的趨勢和特徵,並更輕鬆、有效地比較大型數據集。 本教程將介紹如何計算平均值和衡量數據集的離散程度。除非另有說明,本模塊中的所有函數都支持使用mean()函數計算平均值,而非簡單的求和平均。 也可使用浮點數。 import random import statistics from fracti


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3 Linux新版
SublimeText3 Linux最新版