服务器配置是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 os
BASE_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

django服务器配置的更多相关文章

  1. Window下python2.7+Apache+mod_wsgi+Django服务器配置

    前言:试着使用python搭建一个网页,分别在windows下和linux下,本篇文章主要讲解Window下python+Apache+mod_wsgi+Django服务器配置过程中遇见的问题和解决方 ...

  2. django 解决cors问题

    首页 博客 学院 下载 GitChat TinyMind 论坛 问答 商城 VIP 活动 招聘 ITeye CSTO 写博客 发Chat 登录注册 AFei0018-博客 穷则思变,差则思勤.Pyth ...

  3. django搭建一个小型的服务器运维网站-查看和修改服务器配置与数据库的路由

    目录 项目介绍和源码: 拿来即用的bootstrap模板: 服务器SSH服务配置与python中paramiko的使用: 用户登陆与session; 最简单的实践之修改服务器时间: 查看和修改服务器配 ...

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

    一 .解决python编译安装所需的软件依赖 yum install gcc patch libffi-devel python-devel  zlib-devel bzip2-devel opens ...

  5. Django部署--uwsgi配置--nginx服务器配置

    uwsgi.ini文件 [uwsgi] #使用nginx连接时使用,Django程序所在服务器地址 socket=127.0.0.1:8000 #直接做web服务器使用,Django程序所在服务器地址 ...

  6. centos7 apache httpd安装和配置django项目

    一.安装httpd服务 apache在centos7中是Apache HTTP server.如下对httpd的解释就是Apache HTTP Server.所以想安装apache其实是要安装http ...

  7. Django + Apache + 树莓派 搭建内网微信公众号服务器

    其实早在微信开放公众号开发平台时就想弄一个自己的公众号服务器,奈何对web服务器搭建和开发一窍不通,只是注册了一下开发者帐号,并没有采取行动,万恶的拖延症. 前一年,开始接触python,打开了神奇世 ...

  8. django view

    当请求一个页面时,Django 创建一个包含有关请求数据的 HttpRequest 对象,并将它作为第一个参数传给视图函数,每个视图函数处理完相应逻辑后返回一个 HttpResponse 对象,Htt ...

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

    简介 HTTP 应用的信息是通过 请求报文 和 响应报文 传递的,关于更多的相关知识,可以阅读<HTTP权威指南>获得. 其中 请求报文 由客户端发送,其中包含和许多的信息,而 djang ...

随机推荐

  1. ElasticSearch学习记录

    中文api 什么是集群? 集群(cluster) >由一个或多个节点组织在一起. >由一个唯一的名字标识,默认为"elasticsearch". 节点(node) &g ...

  2. Ubuntu 16.04环境布署小记

    本系列文章记录了升级Ubuntu 16.04的布署过程 回到目录 10. 安装Mono, Xsp 当前版本16.04.1的系统源的Mono版本为4.2.1,如需使用最新版本(本文书写时稳定版本为4.6 ...

  3. LeetCode:461. Hamming Distance

    package BitManipulation; //Question 461. Hamming Distance /* The Hamming distance between two intege ...

  4. 山东省第七届ACM省赛------Julyed

    Julyed Time Limit: 2000MS Memory limit: 65536K 题目描述 Julyed is preparing for her CET-6. She has N wor ...

  5. ionic项目 环境搭建及基本操作

    一.安装 1.安装node.js 3.安装ionic & cordova: 命令行输入:npm install –g cordova ionic 注:-g表示全局安装,也可以进入指定的目录安装 ...

  6. 阿里云CentOS6.5搭建服务器JDK+tomcat+MySQL

    阿里云ECS,计划安装jdk:MySQL:tomcat: 一.yum Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的S ...

  7. EF事务嵌套

    EF中采用的是数据上下文DbContext,当针对数据库的所有操作共用一个数据上下文的时候,会使用同一个连接对象,因此连接打开一次,最后Save的时候关闭连接,避免了频繁的创建连接对象打开关闭,这在一 ...

  8. Mac > MacBook Pro的移动硬盘方案

    灵感来自:http://cone.cc/2012/12/30/Macbook-Air-HD/ 主要为了解决:如果让移动硬盘,无缝地,安全地,同时应用在苹果电脑系统和微软的系统. 除了储存文件,我还想用 ...

  9. Android卸载程序之后跳转到指定的反馈页面

    一个应用被用户卸载肯定是有理由的,而开发者却未必能得知这一重要的理由,毕竟用户很少会主动反馈建议,多半就是用得不爽就卸,如果能在被卸载后获取到用户的一些反馈,那对开发者进一步改进应用是非常有利的.目前 ...

  10. 高通android开发缩写

    1.TLMM MSM TLMM pinmux controller,Qualcomm MSM integrates a GPIO and Pin mux/config hardware, (TOP L ...