這是一篇部屬教學,但不會教你做SSL(因為我SSL現在都走cloudflare zerotrust),我還不用寫CRON,觸發certbot(X
- 材料
- Django Project
- Nuxt Project (可選)
- Linux Server
- Domain
應該就這樣XD
把需要的東西都丟到gitHub上好操作(X
可以去 https://www.digitalocean.com/community/tools/nginx?global.app.lang=zhTW 先戳一份基本設定檔就不用從頭寫了
開始
通用
apt update
django+uwsgi
apt install python3-venv
python3 -m venv .env
source .env/bin/activate
啟動虛擬環境
pip install -r requirement.txt
pip install uwsgi
這邊會直接用venv裡面的uwsgi作為nginx和django的橋樑
其實我也不是很確定這樣對不對 有請各位指教了
- 寫一份uwsgi的設定檔
|
|
- 在虛擬環境下
uwsgi --ini uwsgi.ini
完成!
Nginx
apt install nginx
- nginx的設定可以直接用上面的(X)
- 因為我讓SSL留在Cloudflare上,所以我直接用 Digital 提供的指令把SSL相關選項都註解掉了
|
|
- 讓前端跟後端部在同一個domain上
server {
root /var/www/example.com/public; # 放前端檔案
...
location / {
try_files $uri $uri/ /index.html;
}
location /v1 {
include nginxconfig.io/python_uwsgi.conf;
}
...
}
細節?或是我踩到的坑
- 我一開始直接在Linux上下
apt install uwsgi
:( 這個版本好像是需要另外安裝 python plugins的 可以參考REF 1. - 在啟動uwsgi 前,可以考慮用
python manage.py check --deploy
去看一下 django給你的部屬建議可能有些參數應該設定,或是你model的參數有問題會被列出來
REF:
有問題可以在下方utterances留言喔