第一步:安裝uWSGI
注意:
1)在系統(tǒng)環(huán)境安裝,非虛擬環(huán)境
2)使用對應(yīng)python版本安裝
3)要先安裝python開發(fā)包
root@iZwz98z8juypkzatn41qjbZ:~# pip3 install uwsgi
第二步:測試uwsgi是否正常
- 在/home下新建test.py 文件曾沈,內(nèi)容如下
def application(env, start_response):
start_response('200 OK', [('Content-Type','text/html')])
return [b"Hello World"]
-
在終端下運行
# 注意:需要開啟端口才可以正常訪問 uwsgi --http :8001 --wsgi-file test.py
第三步:用uwsgi的http協(xié)議訪問django寫的網(wǎng)站
# 執(zhí)行命令可以測試自己的項目
uwsgi --http :8001 --chdir /home/mysite --home /home/mysite_env --module mysite.wsgi:application
啟動成功后碰镜,就能使用ip+端口號訪問到自己的網(wǎng)站了牢撼;但是發(fā)現(xiàn)樣式全都不見了淮逻;接下來就用Nginx來處理
第四步:安裝Nginx
apt-get update
apt-get install nginx
# 如果當(dāng)前用戶不是root用戶鞍泉,在命令前加 sudo
第五步:配置Nginx
## 查看sites-enabled目錄下的軟連接(default)
root@iZwz98z8juypkzatn41qjbZ:/etc/nginx/sites-enabled# ls
default
## 刪除sites-enabled目錄下的軟連接(default)
root@iZwz98z8juypkzatn41qjbZ:/etc/nginx/sites-enabled# rm default
root@iZwz98z8juypkzatn41qjbZ:/etc/nginx/sites-enabled# ls
## 查看sites-available可用目錄
root@iZwz98z8juypkzatn41qjbZ:/etc/nginx/sites-available# ls
default
## 在sites-available可用目錄下新建一個mysite.conf文件
root@iZwz98z8juypkzatn41qjbZ:/etc/nginx/sites-available# vim mysite.conf
mysite.conf的配置:
server {
listen 80; # 監(jiān)聽端口
server_name mysite;
charset utf-8; # 編碼集
# 客戶端大小
client_max_body_size 75M;
# 靜態(tài)文件的相關(guān)目錄
location /static {
alias /home/mysite/static;
}
# 上傳文件的目錄
location /media {
alias /home/mysite/media;
}
# 動態(tài)鏈接需轉(zhuǎn)發(fā)到uwsgi
location / {
uwsgi_pass 127.0.0.1:8001;
include /etc/nginx/uwsgi_params;
}
}
設(shè)置軟鏈接到sites-enabled
root@iZwz98z8juypkzatn41qjbZ:/etc/nginx# ln -s /etc/nginx/sites-available/mysite.conf /etc/nginx/sites-enabled/mysite.conf
查看Nginx是否有問題: nginx -t
root@iZwz98z8juypkzatn41qjbZ:/etc/nginx# nginx -t
# 出現(xiàn)如下是沒問題的
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
重啟Nginx: service nginx restart
root@iZwz98z8juypkzatn41qjbZ:/etc/nginx# service nginx restart
回到/home目錄下創(chuàng)建mysite_uwsgi目錄,用于管理uwsgi的相關(guān)文件皱埠;在mysite_uwsgi的目錄下創(chuàng)建mysite.ini
mkdir mysite_uwsgi
vim mysite.ini
mysite.ini的配置
[uwsgi]
# 項目的目錄
chdir = /home/mysite
# 虛擬環(huán)境目錄
home = /home/mysite_env
module = mysite.wsgi:application
# 啟動的主程序
master = True
# 進(jìn)程數(shù)
processes = 4
# 每個請求的超時時間
harakiri = 60
# 最大的請求
max-requests = 5000
socket = 127.0.0.1:8001
uid = 1000
gid = 2000
# 啟動主進(jìn)程
pidfile = /home/mysite_uwsgi/master.pid
# 后臺運行
daemonize = /home/mysite_uwsgi/mysite.log
# 服務(wù)器退出自動回收
vacuum = True
啟動uwsgi
uwsgi --ini /home/mysite_uwsgi/mysite.ini
查看uwsgi進(jìn)程
ps -aux | grep uwsgi
其他參考
正常關(guān)閉uwsgi進(jìn)程:uwsgi --stop /home/mysite_uwsgi/master.pid
強(qiáng)制關(guān)閉全部uwsgi進(jìn)程:ps -aux | grep uwsgi |awk '{print $2}'|xargs kill -9
重新加載uwsgi:uwsgi --reload /home/mysite_uwsgi/master.pid
參考文檔
(Django官網(wǎng))https://docs.djangoproject.com/en/2.1/howto/deployment/wsgi/uwsgi/
(uwsgi中文)https://uwsgi-docs-zh.readthedocs.io/zh_CN/latest/tutorials/Django_and_nginx.html
(uwsgi英文)https://uwsgi.readthedocs.io/en/latest/tutorials/Django_and_nginx.html
(自強(qiáng)學(xué)堂)https://code.ziqiangxuetang.com/django/django-nginx-deploy.html
我的博客地址:https://xt998.github.io/