日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

django+nginx+uwsgi部署web站点

發布時間:2023/12/19 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 django+nginx+uwsgi部署web站点 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

環境:

django:1.8.16 ?

python:2.7.13

pip:2.7

uwsgi:2.0.15

project路徑: /opt/cmdb/


Uwsgi的安裝配置

1、安裝python2.7 (省略安裝過程)

2、安裝pip2.7 (省略安裝過程)

3、安裝uwsgi(注意:要用pip2.7安裝)

1 2 3 pip2.7?install?uwsgi pip2.7?install?requests ln?-s?/usr/local/python2.7/bin/uwsgi?/usr/bin/uwsgi


4、配置uwsgi.ini?

路徑: /opt/cmdb/uwsgi.ini

文件內容:

[root@localhost cmdb]# cat uwsgi.ini?

1 2 3 4 5 6 7 8 9 10 11 [uwsgi] socket?=?127.0.0.1:8088 chdir=/opt/cmdb wsgi-file?=?cmdb/wsgi.py pidfile?=?/var/run/uwsgi.pid daemonize?=?/var/log/uwsgi.log perl-auto-reload?=?2 #buffer-size?=?102400 master?=?true processes?=?2 threads?=?4


Uwsgi:常用參數和選項

關于參數的具體使用,可以閱讀官方文檔http://uwsgi-docs.readthedocs.org/en/latest/Options.html?,在這里列出一些常用的參數:

  • chdir 項目目錄

  • home virtualenv目錄(如沒有運行virtualenv虛擬環境,則無需設置)

  • socket 套接字文件或TCP套接字,例如:site1.uwsgi.sock 或 127.0.0.1:8000

  • uid 用戶id

  • gid 用戶組id

  • processes 工作進程數

  • harakiri 進程超過該時間未響應就重啟該進程(默認單位為秒)

  • module 要啟動的wsgi模塊入口,如:mysite.wsgi:application

  • ini 指定ini配置文件

  • xml 指定xml配置文件(與ini類似)

  • file 指定要運行的wsgi程序文件,如:test.py

  • emperor Emperor模式

  • so-keepalive 開啟TCP KEEPALIVE(unix套接字方式下無效)


uwsgi服務init腳本 /etc/init.d/cmdb

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 #!/bin/bash #?Comments?to?support?chkconfig?on?Linux #?chkconfig:?35?85?15 #?description:?uwsgi?is?an?HTTP(S)?server,?HTTP(S)?reverse # #?author?????mail@zhaoyanan.cn # #?chmod?+x?/etc/rc.d/init.d/uwsgi #?chkconfig?--add?uwsgi #?chkconfig?--level?2345?uwsgi?on # #?Change?History: #?date????????author??????????note #?2016/11/16??mail@zhaoyanan.cn??create,?refer?to?nginx,?and?http://uwsgi-docs.readthedocs.io/en/latest/Management.html ?? set?-e PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin DESC="uwsgi?daemon" NAME=uwsgi???????????? DAEMON=/usr/bin/$NAME??##指向uwsgi的命令路徑 SCRIPTNAME=/etc/init.d/$NAME??##啟動腳本路徑 CONFFILE=/opt/cmdb/uwsgi.ini??##uwsgi.ini配置文件路徑 PIDFILE=/var/run/uwsgi.pid???##pid文件路徑 test?-x?$DAEMON?||?exit?0 ?? d_start(){ ????$DAEMON?--ini?$CONFFILE?||?echo?-n?"?already?running" } ?? d_stop()?{ ????$DAEMON?--stop?$PIDFILE?||?echo?-n?"?not?running" } ?? d_reload()?{ ????$DAEMON?--reload?$PIDFILE?||?echo?-n?"?counld?not?reload" } ?? d_freload()?{ ????$DAEMON?--die-on-term?$PIDFILE?||?echo?-n?"?counld?not?force?reload" } ?? case?"$1"?in start) ????echo?-n?"Starting?$DESC:$NAME" ????d_start ????echo?"." ;; stop) ????echo?-n?"Stopping?$DESC:$NAME" ????d_stop ????echo?"." ;; reload) ????echo?-n?"Reloading?$DESC?configuration..." ????d_reload ????echo?"reloaded." ;; force_reload) ????echo?-n?"The?official?provision?of?the?parameters,?tested?and?found?not?to?support..." ????#?d_freload ????#?echo?"force?reloaded." ????echo?"." ;; restart) ????echo?-n?"Restarting?$DESC:?$NAME" ????d_stop ????sleep?2 ????d_start ????echo?"." ;; *) ????echo?"Usage:?$SCRIPTNAME?{start|stop|restart|reload|force_reload}"?>&2 ????exit?3 ;; esac ?? exit?0



Nginx安裝配置

1、安裝nginx

1 yum?-y?install?nginx


2、配置nginx

[root@localhost cmdb]# cat /etc/nginx/conf.d/cmdb.conf?

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 upstream?django?{ ????server?127.0.0.1:8088; ????} server?{ ????listen??????80; ????server_name?172.16.42.128; ????charset?????utf-8; ????client_max_body_size?10M; ????location?/static?{ ????????alias?/opt/cmdb/static; ????} ????location?/?{ ????????uwsgi_send_timeout?300; ????????uwsgi_connect_timeout?300; ????????uwsgi_read_timeout?300; ????????uwsgi_pass??django; ????????include?????/etc/nginx/uwsgi_params; ????} }


啟動站點

1、啟動nginx服務

/etc/init.d/nginx start (刪除默認的default.conf配置)


2、啟動uwsgi

/etc/init.d/cmdb start


排錯:

1、在實際操作中發現,啟動uwsgi服務后,訪問站點出現“502 Bad Gateway”的報錯,后來發現是在settings中設置了不允許訪問站點

1 ALLOWED_HOSTS?=?[]

改成

1 ALLOWED_HOSTS?=?[‘*’]

后問題解決。


2、由于python2.6 不支持django1.8 ,所以需要在服務器上安裝python2.7,并且在安裝之前,最好輸入以下命令,將可能用到的包都裝上,否則出現問題時,需要重新編譯安裝python2.7

1 2 3 4 yum?-y?install?zlib-devel?bzip2-devel?openssl-devel? yum?-y?install?ncurses-devel?sqlite-devel?readline-devel? yum?-y?install?tk-devel?gdbm-devel?db4-devel?libpcap-devel yum?-y?install?xz-devel?libffi-devel


3、用pip安裝uwsgi時,一定要用pip2.7(用python2.7安裝的pip) 進行安裝


4、invalid request block size: 4161 (max 4096)...skip報錯解決

在訪問站點時,出現了invalid request block size: 4161 (max 4096)...skip報錯解決的報錯。

解決辦法是在uwsgi.ini配置文件中增加一條配置:buffer-size = 102400

將buffer-size設置大一些










本文轉自 曾哥最愛 51CTO博客,原文鏈接:http://blog.51cto.com/zengestudy/1930346,如需轉載請自行聯系原作者
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的django+nginx+uwsgi部署web站点的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。