使用uwsgi+nginx 搭建django和vue專案!!(各種採坑)
阿新 • • 發佈:2020-12-11
前言:各種坑!!!!!
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/uwsgi3.安裝配置nginx
#編碼格式 env LANG="en_US.UTF-8" env LANGUAGE="en_US.UTF-8"
[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即可,寫入的內容是官方給的
3.3 /etc/nginx/nginx.conf nginx主配置檔案解讀( 不用變 )
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; } }
#這裡的配置不用動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目錄中