ubuntu下配置nginx+uwsgi+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/

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:

# 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

[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


				
时间: 2024-11-05 20:29:37

ubuntu下配置nginx+uwsgi+django的相关文章

VPS上配置NGINX+UWSGI+DJANGO+MYSQL

1.安装Django 参见:http://djangobook.py3k.cn/2.0/chapter02/ 2.安装pip $ sudo apt-get install python-pip python-dev build-essential $ sudo pip install --upgrade pip $ sudo pip install --upgrade virtualenv $ sudo apt-get install libmysqld-dev 3.安装MySQL $ apt-

Ubuntu Server 14.04.2 LTS 配置 Nginx + uwsgi + Django

0.目的是在将小巧玲珑的Nginx和Django 通过uwsgi整合 1.预备环境 Python 2.7.8 @ ubuntu server 14.04.2版本 2.安装Django(这里使用的是pip,当然easy_install也是可以的) sudo pip install django==1.8 3.安装 Nginx sudo apt-get install nginx 4.安装 uwsgi sudo apt-get install uwsgi 5.创建个Django项目+app >>p

ubuntu 配置 nginx + uwsgi + django 记录

部分原文:http://www.cnblogs.com/jhao/p/6071790.html 1.nginx安装 sudo apt-get install nginx ubantu安装完Nginx后,文件结构大致为: 所有的配置文件都在 /etc/nginx下: 启动程序文件在 /usr/sbin/nginx下: 日志文件在 /var/log/nginx/下,分别是access.log和error.log: 并且在 /etc/init.d下创建了启动脚本nginx. nginx命令: serv

记录一下在ubuntu 上配置nginx+uwsgi+flask出现的一点问题.

还没有解决 现在的情况很奇怪, 配置uwsgi通过启动脚本启动后,无法正常运行,相同代码在centos上完全没有问题,同样用的是venv的环境, ubuntu,贴上nginx配置和uwsgi配置 uwsgi.ini [uwsgi] socket = 127.0.0.1:8001 wsgi-file=/home/rod/www/app.py callable=app touch-reload=/home/rod/www/ daemonize=/home/rod/uwsgi.log pidfile=

Ubuntu下配置Nginx+PHP

1.安装Nginxapt-get install nginx 2.启动Nginxservice nginx start 3.访问服务器IP 如果看到"Welcome to nginx!"说明安装好了. 4.安装PHPapt-get install php5-fpm 5.配置Nginx找到下列代码,去掉相应注释location ~ \.php$ {        include snippets/fastcgi-php.conf;        fastcgi_pass unix:/va

Ubuntu Nginx uwsgi django 初试

/************************************************************************************** * Ubuntu Nginx uwsgi django 初试 * 说明: * 最近打算通过Python搭建一个数据收集的网站,先做一个搭建测试. * * 2016-8-5 深圳 南山平山村 曾剑锋 ***************************************************************

使用Nginx+uWSGI+Django方法部署Django程序(下)

在上一篇文章<五步教你实现使用Nginx+uWSGI+Django方法部署Django程序(上)>中,阐述了如何只使用uWSGI来部署Django程序. 当然,单单只有uWSGI是不够的,在实际的部署环境中,Nginx是必不可少的工具. 在本篇文章中,我将一直延用“N步法”的风格来阐述如何将uWSGI与Nginx做连接来部署Django程序.并在最后,会较为完整的阐述本社区的部署方法. 本文大纲: 环境介绍 配置uWSGI 配置Nginx Nginx+uWSGI+Django的实现方式 一些建

【转】五步教你实现使用Nginx+uWSGI+Django方法部署Django程序(下)

五步教你实现使用Nginx+uWSGI+Django方法部署Django程序(下) By Django中国社区 at 2013-05-18 04:38 在上一篇文章<五步教你实现使用Nginx+uWSGI+Django方法部署Django程序(上)>中,阐述了如何只使用uWSGI来部署Django程序. 当然,单单只有uWSGI是不够的,在实际的部署环境中,Nginx是必不可少的工具. 在本篇文章中,我将一直延用“N步法”的风格来阐述如何将uWSGI与Nginx做连接来部署Django程序.并

Ubuntu 16.04下配置nginx与nodejs以及服务的部署

title: Ubuntu 16.04下配置nginx与nodejs以及服务的部署 date: 2019-05-05 22:45:49 tags: Linux --- 第一步:安装nginx sudo apt-get update sudo apt-get install nginx 如果遇到依赖问题,尝试执行sudo apt-get -f install命令 第二步:配置nginx 首先备份原先的配置文件:sudo cp /etc/nginx/sites-available/default /