1. 程式人生 > 實用技巧 >使用uwsgi+nginx 搭建django和vue專案!!(各種採坑)

使用uwsgi+nginx 搭建django和vue專案!!(各種採坑)

前言:各種坑!!!!!

1.首先是django的settings配置

# 1.修改配置 

# 正式上線關閉除錯模式, 不會暴露伺服器資訊 

DEBUG = True 

# 2.允許的主機 

ALLOWED_HOSTS = ['xxx.com','127.0.0.1'] 

# 3.前端修改介面地址(vue)
http://192.168.56.100:8888/ => http://xxx.com/ 

# 4.MySQL資料庫根據實際情況配置(注意地址)

 # 5.快取配置, 改為預設, 最簡單形式(配置redis)

 # 6.收集靜態檔案 
# 靜態資源收集位置 

STATIC_ROOT 
= os.path.join(BASE_DIR, 'static') # 7.命令列執行 python manage.py collectstati

2.安裝uwsgi配置Uwsgi

2.安裝uwsgi

[root@linux-node1 /]#  workon syl 

[root@linux-node1 /]# pip3 install uwsgi # 安裝uwsgi 

[root@linux-node1 /]# whereis uwsgi # 檢視uwsgi安裝路徑 

uwsgi: /root/.virtualenvs/syl/bin/uwsgi

uwsgi_conf/uwsgi.ini

下新建這個檔案

[uwsgi]
# 使用Nginx連線時使用,Django程式所在伺服器地址和埠號
socket=127.0.0.1:8000
# 專案目錄絕對路徑
chdir=/root/loonview
# 專案中wsgi.py檔案的目錄,相對於專案目錄
wsgi-file=loonview/wsgi.py
# 程序數(機器核數的1倍)
processes=4

# 執行緒數
threads=50
# uwsgi伺服器的角色
master=True
# 存放程序編號的檔案
pidfile=uwsgi.pid
# 日誌檔案
daemonize=uwsgi.log
# 指定依賴的虛擬環境
irtualenv=/root/.virtualenvs/syl/bin/uwsgi

#編碼格式 env LANG
="en_US.UTF-8" env LANGUAGE="en_US.UTF-8"

3.安裝配置nginx
[root@linux-node1 /]# sudo apt update # 更新apt
[root@linux-node1 /]# sudo apt install nginx # 安裝nginx 
[root@linux-node1 /]# sudo systemctl status nginx # 檢視nginx狀態

4.配置nginx+uwsgi啟動



# /etc/nginx/conf.d/django.conf
# 在 /etc/nginx/conf.d/ 資料夾下新建任意名字 xxx.conf即可,寫入的內容是官方給的


server { listen
8888; server_name 192.168.56.100; location /static { alias /root/loonview/static; } location / { include uwsgi_params; uwsgi_pass 127.0.0.1:8000; uwsgi_ignore_client_abort on; } } server { listen 8888; server_name 192.168.56.100; #access_log logs/access_example.log main; root /root/loonview/static/dist location / { try_files $uri $uri/ @router; } location @router { rewrite ^.*$ /index.html last; } }

3.3 /etc/nginx/nginx.conf nginx主配置檔案解讀( 不用變 )
#這裡的配置不用動 

4. uwsgi和nginx 啟動、關閉、檢視日誌
'''1.啟動並檢視nginx日誌''' 
[root@linux-node1 demo2]# systemctl restart nginx # 開啟nginx root@dev:uwsgi_conf# tail -f /var/log/nginx/access.log # 檢視nginx接入日誌 

root@dev:uwsgi_conf# tail -f /var/log/nginx/error.log # 檢視nginx錯誤日誌 
'''2.啟動並檢視uwsgi日誌''' 

root@dev:uwsgi_conf# cd /teach/shiyanlou_project/uwsgi_conf # 進入實驗樓目錄 
[root@linux-node1 demo2]# uwsgi --ini uwsgi.ini # 啟動uwsgi的 django專案 # http://192.168.56.100:8888/ 訪問專案 

[root@linux-node1 demo2]# uwsgi --stop uwsgi.pid # 關閉uwsgi 

[root@dev:uwsgi_conf# tail -f uwsgi.log # 檢視uwsgi日誌

(syl) root@dev:uwsgi_conf# ps -ef|grep uwsgi # 檢視uwsgi服務是否啟動 
root 92328 89266 0 14:37 pts/1 00:00:00 grep --color=auto uwsgi
 
(syl) root@dev:uwsgi_conf# netstat -anptu | grep 8888 # 檢視8888埠被哪一個程式 佔用

access_log /var/log/nginx/access.log; # 接入日誌(win10上的瀏覽器訪問nginx的日誌)

 error_log /var/log/nginx/error.log; # 當你啟動、關閉nginx時報錯
 
include /etc/nginx/conf.d/*.conf; # nginx配置擴充套件檔案

5 最後在打包 vue專案

cnpm run build

#將他放入後端setting下的static目錄中