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') #此文件夹需为空

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

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

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

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

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

    注: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

  1. 编写测试文件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

访问验证是否正常。
  1. 利用uwsgi启动myproject进行验证是否正常工作;

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

uwsgi后面具体参数,请自行百度。
  1. 如果无异常,编写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;
}
}
  1. 测试nginx配置文件是否正确;

nginx -t

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

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

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

  1. virtualvenv+django+uWSGI+nginx 部署

    原创博文 转载请注明出处! 1. virtualvenv 2. django 3. uWSGI 4. nginx 5. 踩坑记录 1. virtualvenv virtualvenv install ...

  2. Linux 集群概念 , wsgi , Nginx负载均衡实验 , 部署CRM(Django+uwsgi+nginx), 部署学城项目(vue+uwsgi+nginx)

    Linux 集群概念 , wsgi , Nginx负载均衡实验 , 部署CRM(Django+uwsgi+nginx), 部署学城项目(vue+uwsgi+nginx) 一丶集群和Nginx反向代理 ...

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

    django+uwsgi+nginx部署 1.介绍: 在网上看了很多教程,但自己部署了很久都没有成功,这篇博文记录自己所踩过得坑. 2.环境: Ubuntu 16.04.1 LTS (GNU/Linu ...

  4. 「Linux+Django」Django+CentOs7+uwsgi+nginx部署网站记录

    转自:http://www.usday.cn/blog/51 部署前的准备: 1. 在本地可以运行的django项目 2. 一台云服务器,这里选用Centos系统 开始部署: 首先在本地导出项目需要的 ...

  5. Ubuntu下Django+uWSGI+nginx部署

    本文采用uwsgi+nginx来部署django 这种方式是将nginx作为服务端前端,将接受web所有的请求,统一管理,Nginx把所有的静态请求自己处理,然后把所有非静态请求通过uwsgi传递给D ...

  6. Django+Uwsgi+Nginx部署

    一 uwsgi介绍 uWSGI是一个Web服务器,它实现了WSGI协议,uwsgi, http等协议. Nginx中HttpUwsgiMoule的作用是与uWSGI服务器进行交换 1 WSGI是一种W ...

  7. Ubuntu+Django+uWSGI+Nginx部署Django项目

    安装uWSGI,pip依据自己要使用的python版本自行选择,python2.x版本使用pip进行安装,python3.x版本使用pip3进行安装 pip install uwsgi 配置uWSGI ...

  8. virtualvenv+django+uWSGI+nginx 部署 踩坑记录

    原创博文 转载请注明出处! uwsgi: unrecognized option '--http:8089' uwsgi: unrecognized option '--http' uwsgi trk ...

  9. django+uwsgi+nginx 部署生产环境

    一.Uwsgi安装 python3 -m pip install uwsgi cp /usr/local/python3/bin/uwsgi /usr/bin/ 测试 在django项目主目录下cre ...

随机推荐

  1. 如何写APA格式的论文

    一.一般准则 FONT :   TIMES NEW ROMAN SIZE                    :   12 DOUBLE-SPACING INDENT               : ...

  2. linux 三剑客(awk,sed,grep)

    1.awk 在某些场景下,我们需要过滤方式希望是列来匹配,而不是sed的行来匹配,而且awk还可以嵌套for等循环去使用,拓展性强,当然awk也是最难的. awk的常用命令选项: -F fs   fs ...

  3. bizcharts 图表内容居中

    当图表内的数据只有一组时,会紧靠在y轴上,如下图: 想要图表的内容居中,解决方法分两种情况. 第一种:如果x轴是日期,则代码设置如下,图表的内容就居中了 const cols = { x: { ali ...

  4. fiverr无法注册的解决办法,fiverr注册教程

    转载 https://www.wok99.com/450.html

  5. Mysql系列(九)—— 性能分析explain执行计划

    explain是mysql中sql优化的一个重要手段.顾名思义,explain就是解释sql,用于表示sql是怎样执行的信息,即sql执行计划! 语法 explain statement statem ...

  6. 《即时消息技术剖析与实战》学习笔记6——IM系统如何保证消息的安全性

    在消息产生.流转的各个环节中,需要保证消息传输安全性.消息存储安全性.消息内容安全性. 一.消息传输安全性 消息传输的重要防范点有两个,一是访问入口安全,二是传输链路安全. 1.HttpDNS保证访问 ...

  7. Spring Security 入门—内存用户验证

    简介 作为 Spring 全家桶组件之一,Spring Security 是一个提供安全机制的组件,它主要解决两个问题: 认证:验证用户名和密码: 授权:对于不同的 URL 权限不一样,只有当认证的用 ...

  8. 2019-11-29-win10-uwp-关联文件

    原文:2019-11-29-win10-uwp-关联文件 title author date CreateTime categories win10 uwp 关联文件 lindexi 2019-11- ...

  9. Asp.net MVC企业级开发(02)---Log4net

    Log4Net 是用来记录日志的,可以将程序运行过程中的信息输出到一些地方(文件.数据库.EventLog等).日志就是程序的“黑匣子”,可以通过日志查看系统的运行过程,从而发现系统的问题. 日志的作 ...

  10. Python基础10

    字符串大小写转换,除了upper,lower,还有一种方法,casefold( ) 方法 比较这两种方法的适用范围