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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Nginx >内容正文

Nginx

Nginx uWsgi Django环境搭建

發布時間:2025/3/20 Nginx 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Nginx uWsgi Django环境搭建 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

由于一個監控項目(使用django開發)交接到所在項目組,需要了解python的web開發和環境搭建。

這里記錄環境的搭建流程,以及遇到的問題和處理方案。

環境信息: CentOS 6.6 (內網IP:100.84.73.45) Nginx 1.2.8 Python 2.6.6 Django 1.6 uwsgi 2.0.11.2

注意:Django1.6匹配的python最高版本是2.6,如果安裝太高版本的django,需要使用python2.6以上版本,否則安裝過程會報錯:invalid syntax

這里我的機器自帶了python2.6.6,就不介紹python的安裝了。

安裝pip

pip是python的包管理工具,我們使用pip進行python的管理

# wget https://raw.github.com/pypa/pip/master/contrib/get-pip.py # python get-pip.py

安裝uWSGI

uWSGI是一個Web服務器,它實現了WSGI協議、uwsgi、http等協議。

  • 使用pip安裝 uwsgi
# export LDFLAGS="-Xlinker --no-as-needed" # pip install uwsgi
  • 測試uwsgi

創建一個test.py的測試文件

# pwd /home/test/django # touch test.py # vim test.py

test.py內容如下:

def application(env, start_response):start_response('200 OK', [('Content-Type','text/html')])return "Hello World"
  • 啟動uwsgi
# pwd /home/test/django # uwsgi --http :13010 --wsgi-file test.py

在瀏覽器中輸入:http://100.84.73.45:13010

uwsgi安裝和啟動正常。

安裝django

  • 使用pip安裝 django

由于使用的是python2.6.6,因此需要安裝1.6版本的django。

安裝指定版本的django的方式如下:

# pip install -v django==1.6
  • 新建Django工程
# pwd /home/test/django # django-admin.py startproject MySite # ls MySite test.py
  • 使用uwsgi啟動django工程
# pwd /home/test/django # cd MySite # uwsgi --http :13010 --wsgi-file MySite/wsgi.py

在瀏覽器中輸入:http://100.84.73.45:13010

到此django安裝成功,并且和uwsgi結合成功。

  • 補充信息

也可以使用如下命令啟動django工程

# pwd /home/test/django/MySite # uwsgi --http :13010 --module MySite.wsgi

如果是單獨調試django,可以使用django自帶的簡單服務器進行。

# pwd /home/test/django/MySite # python manage.py runserver 0.0.0.0:13010

安裝nginx

  • 源碼安裝nginx

我們采用源碼方式安裝。 搜狐鏡像下載地址:http://mirrors.sohu.com/nginx/ 我選擇的是 1.2.8 版本

安裝步驟,可以看這里:http://xyuex.blog.51cto.com/5131937/1013414

  • 配置nginx
# pwd /home/test/local/nginx # touch nginx_django_unix.conf

nginx_django_unix.conf內容如下:

worker_processes 2;events {use epoll;worker_connections 1024; }http {include conf/mime.types;default_type application/octet-stream;sendfile on;tcp_nopush on;keepalive_timeout 65;gzip on;upstream django {#server 127.0.0.1:13010; # nginx使用tcp方式與uwsgi交互server unix:///home/test/django/MySite/MySite.sock; # nginx使用unix本地socket方式與uwsgi交互}server {listen 13000;server_name uwsgi_django;client_max_body_size 75M;location / {uwsgi_pass django;uwsgi_pass_header http;uwsgi_read_timeout 300;include conf/uwsgi_params;}error_page 500 502 503 504 /50x.html;location = /50x.html {root html;}}}
  • 啟動uwsgi 和 nginx
# pwd /home/test/django/MySite # uwsgi --socket ./MySite.sock --module MySite.wsgi # cd ~/local/nginx # pwd /home/test/local/nginx # sbin/nginx -c nginx_uwsgi.conf

在瀏覽器中輸入:http://100.84.73.45:13000

到此 nginx uwsgi django三個完成了結合。

過程中遇到的問題

uwsgi的交互方式

nginx與uwsgi有三種交互方式:http、tcp、unix本地sock http方式主要是利用nginx的反向代理功能。 TCP方式是ngix通過tcp方式和uwsgi交互。 unix本地sock是通過本地的sock文件進行交互。

  • 如果使用本地sokc方式,uwsgi的啟動應該是
# uwsgi --socket ./MySite.sock --module MySite.wsgi

并且nginx的upsteam配置sock文件地址

  • 如果是TCP方式,uwsig的啟動應該是
# uwsgi --socket :13010 --module MySite.wsgi

并且nginx的upsteam配置ip和端口

  • 采用反向代理方式,uwsgi的啟動應該是
# uwsgi --http:13010 --module MySite.wsgi

nginx的完整配置如下:

worker_processes 2;events {use epoll;worker_connections 1024; }http {include conf/mime.types;default_type application/octet-stream;sendfile on;tcp_nopush on;keepalive_timeout 65;gzip on;upstream django {server 127.0.0.1:13010;}server {listen 13000;server_name uwsgi_django;client_max_body_size 75M;location / {proxy_pass http://django; # 注意這里使用的是proxy_pass協議是http}error_page 500 502 503 504 /50x.html;location = /50x.html {root html;}}}

轉載于:https://my.oschina.net/u/583362/blog/593896

總結

以上是生活随笔為你收集整理的Nginx uWsgi Django环境搭建的全部內容,希望文章能夠幫你解決所遇到的問題。

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