python之Django部署
Django部署:
1. 租云服務(wù)器
2. 買服務(wù)器
租:公網(wǎng)IP,111.13.101.208
租域名:www.pythonav.com <-> 111.13.101.208
3. 編寫代碼
4. 拷貝代碼到服務(wù)器[Python,Django,pymysql,sqllite]
5.
settings.py
ALLOWED_HOSTS = ['服務(wù)器',]? # 即網(wǎng)站IP
python manage.py runserver 0.0.0.0:8001
使用:
遵循wsig協(xié)議:
wsgiref
?
6. uwsgi
pip3 intall uwsgi
簡單測試:
app.py
def application(env, start_response):
start_response('200 OK', [('Content-Type','text/html')])
return [b"Hello World"]
uwsgi --http :9001 --wsgi-file app.py
uwsgi --http :9002 --wsgi-file foobar.py --master --processes 4 --threads 2? (foobar為django wsgi.py路徑, 后面為4進程 2線程)
Django:
# 不處理靜態(tài)文件
uwsgi --http :9002 --chdir /data/s4/deploy --wsgi-file deploy/wsgi.py --master --processes 4 --threads 2
首先settings寫好靜態(tài)文件路徑
STATICFILES_DIRS = (
os.path.join(BASE_DIR,'static'),
)
STATIC_ROOT = os.path.join(BASE_DIR,'uuuuuu')
python manage.py collectstatic (這個命令將上面所有路徑下的靜態(tài)文件收集到指定文件夾 即uuuuuu)
完事,注釋靜態(tài)配置
# 處理靜態(tài)文件
uwsgi --http :9003 --chdir /data/s4/deploy --wsgi-file deploy/wsgi.py --static-map /static=/data/s4/deploy/uuuuuu
# 寫一個配置文件
wsgi_http.ini
[uwsgi]
http = 0.0.0.0:9004
chdir = /data/s4/deploy
wsgi-file = deploy/wsgi.py
# processes = 4
# threads = 2
static-map = /static=/data/s4/deploy/uuuuuu
uwsgi wsgi_http.ini
7. Nginx
yum install nginx
/etc/init.d/nginx start/stop/restart
/etc/nginx/nginx.conf
其中 server后應(yīng)寫 uwsgi的啟動端口,即Nginx將請求轉(zhuǎn)交給uwsgi uwsgi交給Django處理,獲取結(jié)果再交給Nginx返回給客戶。
static 為靜態(tài)文件路徑
此時uwsgi的配置文件應(yīng)修改為連接方式:
http = 0.0.0.0:9004? 改為 socket = 127.0.0.1:8001? 其余不變
用戶請求通過Nginx默認監(jiān)聽的80端口,Nginx再判斷請求信息,如處理動態(tài)請求則向uwsgi的8001端口發(fā)送,處理完后再返回給Nginx交給用戶。
?
lsof -i:端口 可以查看端口是否被使用
如果出錯 應(yīng)設(shè)置selinux??
vim /etc/selinux/config
將SELINUX設(shè)置成disabled
轉(zhuǎn)載于:https://www.cnblogs.com/mitsui/p/7764561.html
總結(jié)
以上是生活随笔為你收集整理的python之Django部署的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: bzoj 4010 菜肴制作
- 下一篇: iwannadadandan下载链接