Django+uWSGI+Nginx 部署网站

Django 1.11设置

保证Django在本地调试没有问题;

当然这是前提^_^

收集静态文件至指定文件夹

Django静态文件设置具体参考:https://docs.djangoproject.com/en/1.11/ref/contrib/staticfiles/

  1. myproject/settings.py中设置静态文件STATIC_URL和STATIC_ROOT设置;

    如:

    STATIC_URL = ‘/static/‘

    STATIC_ROOT = os.path.join(BASE_DIR, ‘static‘) #此文件夹需为空

  2. myproject/urls.py中添加static文件URL配置;

    urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

  3. 运行python3 manage.py collectstatic将静态文件收集到指定文件夹;

    python3 manage.py collectstatic #处于Django虚拟环境下

  4. 本地调试测试,网站是否正常;

    注:STATIC_ROOT不可与STATICFILES_DIRS目录一致。

uWSGI设置

参考文档:

  1. https://docs.djangoproject.com/en/1.11/howto/deployment/wsgi/uwsgi/
  2. https://www.cnblogs.com/chenice/p/6921727.html

安装uwsgi

  1. 如果使用虚拟环境,请在Django虚拟环境下运行;

    pip3 install uwsgi

  2. 编写测试文件test.py进行测试,验证uwsgi是否正常安装;
    # 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

    访问验证是否正常。

  3. 利用uwsgi启动myproject进行验证是否正常工作;

    uwsgi --chdir=/path/to/myproject(此为manage.py文件所在父目录) --module=myproject.wsgi:application --http=127.0.0.1:8000 --processes=2 --vacuum

    uwsgi后面具体参数,请自行百度。

  4. 如果无异常,编写uwsgi配置文件代替命令行形式;

    [uwsgi]
    # http = :8000 #直接提供http访问,配置为http模式,端口自定(下同)
    socket = :8001 #和nginx进行通信,配置为socket模式
    chdir = /path/to/myproject
    module = myproject.wsgi:application
    env = DJANGO_SETTINGS_MODULE=website.settings
    master = true
    processes = 4
    vacuum = true
    max-requests = 5000
    home = /path/to/django/python/virtual_env #(如/path/venv)
    daemonize = /var/log/uwsgi/website.log #后台运行

    使用配置文件启动:

    uwsgi --ini /path/to/uwsgi.ini

    停止uwsgi,请使用kill 进程,优化请自己写脚本进行控制。

Nginx配置

安装nginx,可选择nginx官方源

linux版安装源配置

修改nginx配置文件,本配置以Debian9系统下Nginx=1.12版为例

  1. nginx默认配置位置/etc/nginx
  2. 进行/etc/nginx/conf.d/添加自己的网站文件或者修改default.conf,nginx默认会对所有下面的配置文件进行读取和设置,配置文件以.conf结尾。

    注:default.conf文件默认端口为80,如使用80端口,请修改或删除default.conf或者在此基础进行设置配置文件;

  3. 配置文件示例:
    server {
    listen 80;
    server_name debian;
    charset utf-8;
    
    client_max_body_size 10M;
    location /media {
    alias /path/to/myproject/media;
    }
    
    location /static {
    alias /path/to/myproject/static;
    }
    
    location / {
    \# 此处记得和uwsgi里的socket配置保持一致,另记得uwsgi里启用socket而不是http
    uwsgi_pass 127.0.0.1:8001;
    include uwsgi_params;
    }
    }
  4. 测试nginx配置文件是否正确;

    nginx -t

  5. 启动nginx服务,访问进行验证是否正常工作;

至此,Django + uWSGI + Nginx部署完成。

时间: 2024-10-29 19:06:21

Django+uWSGI+Nginx 部署网站的相关文章

django+uwsgi+nginx部署(非常详细)

django+uwsgi+nginx部署 1.介绍: 在网上看了很多教程,但自己部署了很久都没有成功,这篇博文记录自己所踩过得坑. 2.环境: 1 Ubuntu 16.04.1 LTS (GNU/Linux 4.4.0-130-generic x86_64) 3.下载uwsgi以及nginx 1 apt-get install uwsgi 2 apt-get install nginx (注:如果下载异常出现权限问题,在命令前添加sudo) 4.创建Django项目 例如:项目名为mysite

Django+uWsgi+nginx部署

一.环境 操作系统:Ubuntu 14.04 64位 python:2.7.6 Django:1.8.2 项目源码:https://github.com/youchuancong/django.git 部署方式:Django+uWsgi+nginx 二.部署 1.Django安装 官网:https://www.djangoproject.com/ 安装 wget https://www.djangoproject.com/m/releases/1.8/Django-1.8.2.tar.gz ta

django+uwsgi+nginx部署在ubuntu系统上

1. 安装之前的准备工作 修改项目下settings.py文件,将调试状态改为False DEBUG = False ALLOWED_HOSTS = ['*'] 能否正常启动项目:python manage.py runserver 2. 安装nginx1.8.1 从http://nginx.org/en/download.html下载 安装gcc g++的依赖库 sudo apt-get install build-essential sudo apt-get install libtool

Django + Uwsgi + Nginx 的生产环境部署

使用runserver可以使我们的django项目很便捷的在本地运行起来,但这只能在局域网内访问,如果在生产环境部署django,就要多考虑一些问题了.比如静态文件处理,安全,效率等等,本篇文章总结归纳了一下基于uwsgi+Nginx下django项目生产环境的部署 准备条件: 1.确保有一个能够用runserver正常启动的django项目 2.项目已上传到linux 3.linux上已部署好python环境,且已安装好项目所需的模块 安装uwsgi uwsgi是python的一个模块,安装u

Django + Uwsgi + Nginx 实现生产环境部署

一.如何在生产上部署Django? Django的部署可以有很多方式,采用nginx+uwsgi的方式是其中比较常见的一种方式. 二.uwsgi介绍 uWSGI是一个Web服务器,它实现了WSGI协议.uwsgi.http等协议.Nginx中HttpUwsgiModule的作用是与uWSGI服务器进行交换. 要注意 WSGI / uwsgi / uWSGI 这三个概念的区分. WSGI是一种Web服务器网关接口.它是一个Web服务器(如nginx,uWSGI等服务器)与web应用(如用Flask

[linux]centos7.4部署django+Uwsgi+Nginx

前言:我已经写了几个接口用来部署在服务器上的,首先选择django+Uwsgi+Nginx因为配置简单,比较符合python的简单操作功能强大的特点 然后对于django的一些版本在之前的文章写了 参考:https://www.cnblogs.com/Jack-cx/p/9351633.html  根据版本,服务器pip3 install xxx 安装下 我的django项目大概结构: TestWebApi ----TestWebApi ----Apiso(创建的应用) ----manage.p

用Docker部署Django+uWSGI+Nginx

用Docker部署Django+uWSGI+Nginx 大致步骤如下: 创建Centos容器 安装Python及pip 安装MySQL 使Django连接到MySQL 运行uWSGI服务器 运行Nginx服务器 ? ? 创建Centos容器 安装docker软件 yum install docker 创建一个centos容器 docker run -d --name deploy1 --network host centos tail -f /dev/null -d:让它在后台运行. –name

Django + Gunicorn + Nginx 部署 Ubuntu 服务器

Django + Gunicorn + Nginx 部署服务器 获取腾讯云 root权限 本人的服务器使用的是腾讯云,腾讯云默认是没有开放 root 用户的,我们来创建 root 用户. 创建 root 账号并设置密码. sudo passwd root 设置 root 账户登录需要密码. sudo vim /etc/ssh/sshd_config 修改 without-password 为 yes. PermitRootLogin yes 重启 ssh 服务. sudo service ssh

vue+uwsgi+nginx部署前后端分离项目

一:vue+uwsgi+nginx部署 1.1:准备代码: # 路飞学城django代码 https://files.cnblogs.com/files/pyyu/luffy_boy.zip # vue代码 https://files.cnblogs.com/files/pyyu/07-luffy_project_01.zip 1.2:部署准备 1. 部署环境准备 ⑴ . 准备python3和虚拟环境解释器,python3,virtualenvwrapper. pip3 install -i h