多專案上線Nginx+Django+uwsgi
本文章的前提是django專案除錯已經完成
環境配置
-
安裝nginx
sudo apt-get install nginx
-
安裝uwsgi
sudo apt-get install libpython3.6-dev
pip install uwsgi
資料庫修改字符集(方便插入中文)
修改mysql的配置檔案
cd /etc/mysql/mysql.conf.d
sudo cp mysql.cnf mysql.cnf.bak # 修改前先備個份
sudo vim mysql.cnf
在[mysqld]下增加一句:
character_set_server = utf8
儲存並重啟服務
sudo systemctl restart mysql.service #重啟服務
Nginx 配置
include /etc/nginx/sites-enabled/*;
-
配置檔案
到/etc/nginx/sites-available 下寫配置檔案
cd /etc/nginx/sites-available
複製新建一個站點配置檔案
sudo cp default your.example.com.conf
sudo vim your.example.com.conf
開始配置
server { listen 80; server_name blog.19950314nina.top; charset utf-8; client_max_body_size 75M; location /static { # 注意靜態檔案路徑配置 alias /home/guoxd/temp/myblog/; } location / { include /etc/nginx/uwsgi_params; # uwsgi_params的>位置, 否則域名無>法訪問, 一般與nginx預設配置目錄同級 uwsgi_pass 127.0.0.1:8000; # 埠與uwsgi一致 } }
因為是多站,在這裡再寫一個站點配置
sudo cp default your.example2.com.conf
sudo vim your.example2.com.conf
開始配置
server { listen 80; server_name bt.19950314nina.top; charset utf-8; client_max_body_size 75M; location /static { # 注意靜態檔案路徑配置 alias /home/guoxd/temp/bt/; } location / { include /etc/nginx/uwsgi_params; # uwsgi_params的>位置, 否則域名無>法訪問, 一般與nginx預設配置目錄同級 uwsgi_pass 127.0.0.1:8001; # 埠與uwsgi一致 } }
建立存放靜態檔案的資料夾,先建立好,接下來會用到
mkdir -p /home/guoxd/temp/bt
mkdir -p /home/guoxd/temp/myblog
到sites-enabled資料夾,建立軟連線,使配置生效
cd /etc/nginx/sites-enabled
sudo ln -s /etc/nginx/sites-available/your.example.com.conf your.example.com.conf
sudo ln -s /etc/nginx/sites-available/your.example2.com.conf your.example2.com.conf
-
Nginx的使用
sudo nginx -t #對nginx配置是否正確進行測試
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful # 輸出這兩句,說明配置沒問題sudo nginx -s reload # 重啟服務 修改完配置,重啟後生效
到這裡nginx裡的站點配置完成
Uwsgi 配置
我在測試時,兩個django專案的路徑
/home/guoxd/testpro/project2
/home/guoxd/testpro/project3
- uwsgi 配置檔案
到專案目錄下新建一個 uwsgi.ini 配置檔案
cd /home/guoxd/testpro/project2
vim uwsgi.ini
開始配置
[uwsgi]
# 注意 這個埠 要與 對應的站點配置中的埠一致
socket=0.0.0.0:8001
# 專案目錄
chdir=/home/guoxd/testpro/project2
# wsgi 檔案
wsgi-file=project2/wsgi.py
processes=4
threads=2
master=True
pidfile=uwsgi.pid
daemonize=uwsgi.log
同理在另外的專案中也進行類似的配置, 路徑與埠修改一下即可.
到這裡,uwsgi的簡單配置就完成了.
- uwsgi的使用
uwsgi --ini uwsgi.ini # 啟動 uwsgi --stop uwsgi.pid # 停止
Django 配置
修改settings檔案
#在settings開頭修改 DEBUG=False allow = ['*'] # 在settings末尾新增 STATIC_ROOT = '/home/guoxd/temp/project2/bt' # 執行 collectstatic 時 檔案路徑 STATIC_URL = '/static/' #把STATICFILES_DIRS註釋掉 ''' STATICFILES_DIRS =[ os.path.join(BASE_DIR, 'static'), ] '''
收集靜態檔案
python manage.py collectstatic
收集完成後,將靜態檔案複製到nginx站點配置時 對應的靜態檔案路徑下
- 資料庫
python manage.py makemigrations
python manage.py migrate
在這裡,記錄一個mysql 匯出和匯入的命令
mysqldump -u(username) -p(password) (database_name) (something).sql #匯出sql資料庫
示例: mysqldump -uroot -p123 bt bt.sql
mysql -u(username) -p(password) --database (database_name) < (something).sql # 匯入資料庫
示例:mysql -uroot -p123 --database bt < bt.sql # 匯入資料庫
啟動
在django專案下 啟動
uwsgi --ini uwsgi.ini
相關文章
- 專案上線-CDN
- 線上快速建立SpringBoot專案Spring Boot
- Vue專案上線前的優化以及專案打包上線流程Vue優化
- luffy路飛專案上線03
- 線上電影專案介紹
- Vue 生產專案連結 — 上線專案大集合Vue
- Linux Centos7 nodeJS專案上線LinuxCentOSNodeJS
- Flutter上線專案實戰——路由篇Flutter路由
- 軟體專案上線完整流程
- Vue專案上線環境部署,專案優化策略,生成打包報告,及上線相關配置Vue優化
- 【原創】專案估算-專案管理MSN群線上討論(2009.6.30)專案管理
- 多檔案二維碼生成器線上報名功能,wps線上生成二維碼線上預覽線上分享
- 個人React / Koa 專案上線——健身筆記React筆記
- Laravel 專案正式上線後需要做哪些操作?Laravel
- 學成線上專案總結 - Day1
- 最新Python爬蟲專案班(七月線上)Python爬蟲
- 網際網路公司專案的上線過程
- 開源一個線上專案 WeAre-AR相簿
- Laravel 專案上線的一些注意事項Laravel
- centos+nginx+uwsgi部署django專案上線詳解CentOSNginxDjango
- Flutter上線專案實戰——Vap視訊動畫Flutter動畫
- 線上教育專案(六)----統一返回資料格式
- 線上多域名實戰
- 專案上線之後,出現過線上問題嗎?怎麼排查和解決的?
- C# 連線多種資料庫元件,類庫專案C#資料庫元件
- 實戰 | 如何上線一個機器學習專案?機器學習
- 如何將c#線上編輯器嵌入自己專案C#
- 透過線上的文件協作進行專案管理專案管理
- 使用 Cursor 和 Devbox 快速開發並上線 Gin 專案dev
- 專案沒上線時效能指標怎麼獲取?指標
- .NET 開源許可權認證專案 MiniAuth上線
- Git強制將本地專案覆蓋線上倉庫Git
- 準備的一年的專案上線失敗
- 開源框架 WebFirst 一鍵生成專案,線上建表框架Web
- Flutter上線專案實戰——圖片視訊預覽Flutter
- 如何在github同一個倉庫上傳多個專案Github
- laravel 多檔案上傳Laravel
- 區塊鏈多商戶商城開發上線版丨區塊鏈多商戶商城系統開發(專案及方案)區塊鏈