django服务器配置

服务器配置是Ubuntu14.04 64位OS

ubuntu14.04默认是安装好了python2.7版本不用自己安装了。

先更新下源

sudo apt-get update

第一步先安装pip

sudo apt-get install -y python-pip

有些时候安装pip前需要安装几个相关包

sudo apt-get install -y python-dev

sudo apt-get install -y libevent-dev

安装完pip后我们开始安装django

sudo pip install Django==1.7.1

安装后输入Python进入交互环境输入django.VERSION查看版本

开始装uwsgi

下面这几个可能是相关包

sudo apt-get install -y build-essential

sudo apt-get install -y zliblg-dev

sudo apt-get install -y libsqlite3-dev

sudo apt-get install -y libreadline6-dev

sudo apt-get install -y libgdbm-dev

sudo apt-get install -y libbz2-dev

sudo apt-get install -y tk-dev

sudo apt-get install -y uwsgi-plugin-python

安装uwsgi

sudo pip install uwsgi

可以写个test.py

# test.py
def application(env, start_response):
    start_response(‘200 OK‘, [(‘Content-Type‘,‘text/html‘)])
    return [b"Hello World"] # python3
    #return ["Hello World"] # python2

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

浏览器输入http://example.com:8000看是否显示helloworld

再安装git

sudo apt-get install -y git

克隆项目

用uwsgi启动项目

uwsgi --ini ${current_path}${sep}/$uwsgi_name

安装nginx

sudo apt-get install -y nginx

修改nginx配置文件,删掉原先包里的东西,加上软链接

ln -s ${current_path}${sep}${p_name}${sep}${conf_name} /etc/nginx/sites-enabled/

(

sudo ln -s /data/www/ts/conf/ts_nginx.conf /etc/nginx/sites-enabled/
sudo ln -s /data/www/ts/conf/ts_nginx.conf /etc/nginx/sites-available/

)

service nginx restart

输入网址就可以了。

另外你需要

python manage.py collectstatic

import osBASE_DIR = os.path.dirname(os.path.dirname(__file__))
STATIC_ROOT = os.path.join(BASE_DIR, ‘static2‘, ).replace(‘\\‘, ‘/‘)STATIC_URL = ‘/static/‘然后将静态文件从static2移动到static目录下

输入网址就可以了。

几个配置文件:

nginx.conf:


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

# the upstream component nginx needs to connect to

upstream django {

    server unix:/etc/nginx/django/daowang/Wangdao.sock; # for a file socket

}

# configuration of the server

server {

    # the port your site will be served on

    listen      80;

    # the domain name it will serve for

    server_name http://114.215.157.15/; # substitute your machine‘s IP address or FQDN

    charset     utf-8;

    # max upload size

    client_max_body_size 75M;   # adjust to taste

    # Django media

    location /media  {

        alias /etc/nginx/django/daowang/static/media;  # your Django project‘s media files - amend as required

    }

    location /static {

        alias /etc/nginx/django/daowang/static; # your Django project‘s static files - amend as required

    }

    location /FingerHire{

        proxy_pass http://127.0.0.1:8080;

    }

    # Finally, send all non-media requests to the Django server.

    location / {

        uwsgi_pass  django;

        include     /etc/nginx/django/daowang/uwsgi_params; # the uwsgi_params file you installed

    }

}

uwsgi.ini


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

[uwsgi]

# Django-related settings

# the base directory (full path)

chdir           = /etc/nginx/django/daowang

# Django‘s wsgi file

module          = Wangdao.wsgi

# master

master          = true

# maximum number of worker processes

processes       = 32

max-requests    = 1000

# the socket (use the full path to be safe

socket          = /etc/nginx/django/daowang/Wangdao.sock

# ... with appropriate permissions - may be needed

chmod-socket    = 666

#chown-socket    = www-data:www-data

# clear environment on exit

vacuum          = true

daemonize       = /var/log/uwsgi/Wangdao.log

pidfile         = /tmp/project-master.pid

# added 2014-09-17

reload-on-as    = 126

reload-on-rss   = 126

enable-threads  = true

pythonpath      = /etc/nginx/django/daowang

uwsgi_params

uwsgi_param  QUERY_STRING       $query_string;
uwsgi_param  REQUEST_METHOD     $request_method;
uwsgi_param  CONTENT_TYPE       $content_type;
uwsgi_param  CONTENT_LENGTH     $content_length;

uwsgi_param  REQUEST_URI        $request_uri;
uwsgi_param  PATH_INFO          $document_uri;
uwsgi_param  DOCUMENT_ROOT      $document_root;
uwsgi_param  SERVER_PROTOCOL    $server_protocol;
uwsgi_param  HTTPS              $https if_not_empty;

uwsgi_param  REMOTE_ADDR        $remote_addr;
uwsgi_param  REMOTE_PORT        $remote_port;
uwsgi_param  SERVER_PORT        $server_port;
uwsgi_param  SERVER_NAME        $server_name;

配置下根目录下的wsgi.py

import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "Wangdao.settings")

from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

常用命令:

1.查看端口占用情况:

netstat -lpnt

2.杀死所有uwsgi进程

killall -9 uwsgi

3.uwsgi启动命令

uwsgi --ini /etc/nginx/django/lovep2c/lovep2c_uwsgi.ini

4.关闭uwsgi命令

uwsgi --stop /tmp/project-master.pid

5.重启uwsgi命令

uwsgi --reload /tmp/project-master.pid

nginx错误日志:

tail /var/log/nginx/error.log

uwsgi日志:

tail /var/log/uwsgi/lovep2c.log

项目错误日志:

tail /etc/nginx/django/debug.log

tail /etc/nginx/django/error.log

参考网址:https://uwsgi.readthedocs.org/en/latest/tutorials/Django_and_nginx.html

时间: 2024-10-16 01:03:14

django服务器配置的相关文章

Window下python+Apache+mod_wsgi+Django配置(python2.7)

前言:试着使用python搭建一个网页,分别在windows下和linux下,本篇文章主要讲解Window下python+Apache+mod_wsgi+Django服务器配置过程中遇见的问题和解决方法. 正文: 首先,需要下载python.Apache.mod_wsgi.Django,下载地址如下 mod_wsgi:http://www.lfd.uci.edu/~gohlke/pythonlibs/#mod_wsgi(因为python2.7,所以下载mod_wsgi?4.4.21+ap24vc

centos 安装教程 服务器配置教程 服务器中安装python 服务器中安装Django

一 .解决python编译安装所需的软件依赖 yum install gcc patch libffi-devel python-devel  zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel -y 二 下载python3.6源码包 1,在服务器opt目录下输入 wget https:

Django运维后台的搭建之一:使用model建立数据信息

2017年的上半年对我来说是极其难忘的一年,整个乐橙运营部的平台运维全靠我一个人,而且同时公司又新上了一个阿里深圳区一个杭州公有云两套环境外加一套演示环境.所以一直念叨的运维后台始终拖拖拉拉,现在公司又招来一个小弟给我打下手,我终于有时间去把这个小心愿完成,于是就有了这一系列文章,主要是给自己一个记录也是为了方便后来人. 首先,先说一下我的环境,本人使用阿里云centos7.0,django的版本是1.10.3,python是2.7,django目录就是/django. 首先在/django里#

22:django 配置详解

django配置文件包含了你的django安装的所有配置信息,本节为大家详细讲解django的配置 基本知识 一个配置文件只是一个包含模块级别变量的的python模块,所有的配置变量都是大写的,哈哈哈,这是一个简单的例子 DEBUG = False DEFAULT_FROM_EMAIL = '[email protected]' TEMPLATE_DIRS = ('/home/templates/mike', '/home/templates/john') 因为python的配置文件也是一个py

Nginx+Gunicorn+virtualenv+supervisord+Postgresql部署Django应用

关于Django应用部署 Django是一个高效.多功能和动态地进化的Web应用开发框架.目前比较流行的部署.运行Django应用方式是基于Apache的mod_wsgi模块,但更加高效.弹性,同时又更加复杂的方式是使用以下工具来部署实施:Nginx.Gunicorn.virtualenv.supervisord.Postgresql.以下详细介绍如何结合这些工具来部署Django应用到Linux上. 准备工作 需要有一台拥有root权限的Linux服务器,这是部署应用的平台.本文采用CentO

Django运维后台的搭建之五:引入databases和django-crispy-forms

在上一篇,我们已经把我们做的运维外面套上了bootstrap框架,但是那仅仅是一个外壳,这一次是要把里面的壤也扣上这样的框架. 首先,编辑index.html,添加block元素,用于主页存放不同的内容: <div class="page-content">      <div class="page-content-area">                       <div class="page-header&qu

django的views里面的request对象详解大全

简介 HTTP 应用的信息是通过 请求报文 和 响应报文 传递的,关于更多的相关知识,可以阅读<HTTP权威指南>获得. 其中 请求报文 由客户端发送,其中包含和许多的信息,而 django 将这些信息封装成了 HttpRequest 对象,该对象由 HttpRequest 类创建.每一个请求都会生成一个 HttpRequest 对象,django会将这个对象自动传递给响应的视图函数,一般视图函数约定俗成地使用 request 参数承接这个对象. 例如: def index(request):

django下进行项目的部署

-------------------Django下进行对应的服务器配置1.服务器购买 本人在阿里云购买了一个服务器,操作系统为windows server2008/Linux(ubuntu) 2.服务器环境配置 1.pip freeze > plist.txt :将当前虚拟环境中所安装的环境,移植到plist.txt文件夹中 2.sudo apt-get install python-virtualenv :Linux下下载对应的虚拟环境安装包 3.sudo easy_install virt

Django运维后台的搭建之三:用url去精细定制与反向解析

上一篇文章里,我们做了一个alionlineecs(阿里云线上环境服务器)的添加界面,但是要知道我们的计划里是有六个分支的,而alionlineecs仅仅是其中之一,要是每一个都这么写的话,那么views.py肯定又臭又长,充满了大量的复制片段. 对于这样的情况,我们就用一种统一的方式,把这些alionlineecs\alifuncecs\slb\rds等等这些分支当成一个变量,再自定义两个url,比如lists这个url就是展示功能,当在浏览器里输入"外网地址:8000/lists/alion