linux部署django,Linux 安装并部署python+django+uwsgi+nginx总结

1.    python和django的环境搭建

(1)下载anaconda3并安装

wget https://3230d63b5fc54e62148e-c95ac804525aac4b6dba79b00b39d1d3.ssl.cf1.rackcdn.com/Anaconda3-2.3.0-Linux-x86_64.sh

sh Anaconda3-2.3.0-Linux-x86_64.sh

一路enter键,然后提示是否加入到环境变量时,输入yes即可。

(2)安装django

直接pip install django

安装成功之后就可以新建项目

django-admin startproject demosite

cd demosite

python manage.py startapp blog

python manage.py migrate (要执行这个命令,让django生成可运行的app,否则后面使用uwsgi会报错)

(3)运行django

python manage.py runserver

curl 127.0.0.1:8000进行如果可以正常访问,就说明django安装成功。

2.    安装uwsgi

(1)centOS

yum install zlib-devel bzip2-devel pcre-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel

pip install uwsgi

uwsgi --version    #查看 uwsgi 版本

(2)test.py

然后,Run uWSGI:

uwsgi --http :8000 --wsgi-file test.py

def application(env, start_response):

start_response('200 OK', [('Content-Type','text/html')])

return ["Hello World"] # python2

#return [b"Hello World"] # python3

(3)ubuntu可以能会出现错误:

如果出现错误,!!! no internal routing support, rebuild with pcre support !!!

sudo apt-get install libpcre3 libpcre3-dev

sudo pip uninstall uwsgi

sudo apt-get remove uwsgi

sudo pip install uwsgi

(4)测试

1) 打开下面url,浏览器上应该显示hello world

curl http://127.0.0.1:8000 如果安装httpie模块的话使用http http://127.0.0.1:8000

如果显示正确是Hello World,说明上面的环节是畅通的

2) 测试django

默认使用django新建工程会在app下面生成一个wsgi.py的文件

uwsgi --http :8000 --wsgi-file wsgi.py 直接这样也会报错

uwsgi --http :8000 --wsgi-file appname/wsgi.py

打开浏览器输入http://127.0.0.1:8000  如果现实正确说明web client uwsgi django是畅通的

3.  安装配置nginx

(1)安装

wget http://nginx.org/download/nginx-1.9.5.tar.gz

tar xf nginx-1.9.5.tar.gz

cd nginx-1.9.5

./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_gzip_static_module

make && make install

或者参考

(2)配置文件

vi /usr/local/nginx/conf/nginx.conf

一般来说加入个server就OK了

参考配置如下

user root;

worker_processes  1;

#error_log  logs/error.log;

#error_log  logs/error.log  notice;

#error_log  logs/error.log  info;

pid        logs/nginx.pid;

events {

use   epoll;

worker_connections  65535;

}

http {

include       mime.types;

default_type  application/octet-stream;

#log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '

#                  '$status $body_bytes_sent "$http_referer" '

#                  '"$http_user_agent" "$http_x_forwarded_for"';

#access_log  logs/access.log  main;

sendfile        on;

#tcp_nopush     on;

#keepalive_timeout  0;

keepalive_timeout  65;

#gzip  on;

server {

listen   8099;

server_name 10.117.52.157;              ##对外访问的IP和端口号

access_log /tmp/cms/access.log;

error_log /tmp/cms/error.log;

#charset koi8-r;

#access_log  logs/host.access.log  main;

location / {

include        uwsgi_params;

uwsgi_pass     127.0.0.1:8088;

uwsgi_read_timeout 300;

}

#error_page  404              /404.html;

# redirect server error pages to the static page /50x.html

#

#error_page   500 502 503 504  /registration/500.html;

#location = /registration/500.html {

#    root   html;

#}

location /static/ {

alias  /root/cms/cms/static/;

index  index.html index.htm;

}

location /media/ {

alias  /root/cms/cms/media/;

}

}

}

(3)运行and 重启

/usr/local/nginx/sbin/nginx

启动: nginx  start

重启: nginx -s reload

4.  使用uwsgi的配置文件运行django

在确保nginx运行之后,就可以通过uwsgi来运行django了。nginx 在最外层接收请求,静态的自己处理,动态的通过    socket端口交给uwsgi来处理。

配置文件内容如下

[uwsgi]

socket=:8088               #要和nginx对应的IP和端口号一致

chdir=/root/cms/cms #APP的目录

module=cms.wsgi        #wsgi.py文件位置

touch-reload=/root/cms/cms/reload  #重启只要输入命令touch reload文件即可

processes=4

threads=2

daemonize=/tmp/cms/wsgi.log   #日志文件位置

放在APP的上一级目录

直接运行uwsgi --ini uwsgi.ini 即可

来源:oschina

链接:https://my.oschina.net/u/1406293/blog/598361

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值