centos7+nginx+python3+django+uwsgi配置Django 项目部署

 

1.租的服务器(选择centos)的话,需要在阿里云后台控制台开放几个端口,克隆一下已开放的端口,tcp自定义就行,mysql(3306),nginx(8000以上都行)。(都切换到root用户操作)

2.安装python3

3.安装nginx

4.安装mysql(这一步如果暂时用不上数据库也可以不操作)

5.确定2,3两步安装成功了,接下来就用pip3 安装django 和uwsgi,

在进行下一步之前建议你看一下这篇博客:http://blog.csdn.net/c465869935/article/details/53242126

还有官方文档:https://uwsgi-docs.readthedocs.io/en/latest/tutorials/Django_and_nginx.html(直接搜uwsgi官方文档(找到Setting up Django and your web server with uWSGI and nginx)).

6.测试uwsgi能否正常运行:

  随便找个干净的目录下vim  test.py,新建一个py文件,在里面写上:

 def application(env, start_response):
   start_response(‘200 OK‘, [(‘Content-Type‘,‘text/html‘)])
  return "Hello World".encode()

  并保存。然后在当前目录下执行:uwsgi --http :8000 --wsgi-file test.py。

  访问 http://127.0.0.1:8000,能显示Hello World说明uwsgi没问题。

7.随便找个干净的目录 新建一个django项目

  进入项目里面 编辑settings.py : vim settings.py ,在里面加上:

  ALLOWED_HOSTS = [‘test.xq.com‘,‘localhost‘, ‘127.0.0.1‘,‘虚拟机自己的ip‘,]

  #test.xq.com为你自己买的域名,暂时可以不用,用虚拟机自己的ip或者服务器的ip就行

同时加上:

  STATIC_ROOT = os.path.join(BASE_DIR, ‘static‘)

并保存 执行 cd ..切换到pyDemo项目的根目录,能看到manage.py即可,然后执行:python3 manage.py collectstatic.

在同一目录下新建uwsgi的配置文件: vim uwsgi.ini ,在里面写上:

[uwsgi]

socket = 127.0.0.1:8001

chdir=/py36_projects/pyDemo

module=pyDemo.wsgi

master = true

processes=2

threads=2

max-requests=2000

chmod-socket=664

vacuum=true

daemonize = /py36_projects/pyDemo/uwsgi.log

8.剩下的只有配置nginx的配置文件,

  vim /etc/nginx/nginx.conf,进入nginx.conf配置文件看看有没有下面这句代码:

  include /etc/nginx/conf.d/*.conf;(意思是导入/etc/nginx/conf.d/下的所有配置文件)

于是我们只要在/etc/nginx/conf.d/目录下:

  cd /etc/nginx/conf.d

新建一个conf就行:vim pyDemo.conf(名字随便取),里面写上:

stream django {

    # server unix:///path/to/your/mysite/mysite.sock; # for a file socket

    server 127.0.0.1:8001; # for a web port socket (we‘ll use this first)

}

# configuration of the server

server {

    # the port your site will be served on

    listen      8000;

    # the domain name it will serve for

    server_name localhost; # substitute your machine‘s IP address or FQDN

    charset     utf-8;

    # max upload size

    client_max_body_size 75M;   # adjust to taste

    location /static {

        alias /py36_projects/pyDemo/static; # your Django project‘s static files - amend as required

    }

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

    location / {

        uwsgi_pass  django;

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

    }

}

一些说明:

listen      8000; 阿里云服务器的话为上面提到的阿里云后台控制台添加的端口(对外的端口)

server_name localhost; localhost可以替换你购买的域名(如前面django的配置文件里的test.xq.com)

/py36_projects/pyDemo/ 是我的项目路径

uwsgi_pass  django; 里面的 server 127.0.0.1:8001;和上面的uwsgi.ini配置文件的 socket = 127.0.0.1:8001 的端口一致,这个端口8000以上把(不要和nginx配置的端口相同就行)

include     /etc/nginx/uwsgi_params;引入/etc/nginx/目录下的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  REQUEST_SCHEME     $scheme;

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;

9.以上基本配置好了,验证的准备:

先执行(一步一步来):

pkill -9 uwsgi

pkill -9 nginx

然后切换到项目根目录:

cd /py36_projects/pyDemo 执行:

uwsgi --ini uwsgi.ini

最后执行:

systemctl start nginx 或者 nginx -c /etc/nginx/nginx.conf(都是启动nginx的)

10.开始验证:

打开浏览器:输入你虚拟机或者服务器的 ip:8000,这样就配置成功了

http://blog.csdn.net/c465869935/article/details/53242126

还有官方文档:https://uwsgi-docs.readthedocs.io/en/latest/tutorials/Django_and_nginx.html(直接搜uwsgi官方文档(找到Setting up Django and your web server with uWSGI and nginx)).

浏览这两篇文章很重要,对你的理解有帮助

 
 

阿里云 centos7 django + uWSGI+Nginx + python3 部署攻略的更多相关文章

  1. Centos7 django+uwsgi+nginx+python3.6.8部署

    安装依赖 yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-d ...

  2. 阿里云centos7搭建php+nginx环境

    阿里云Centos搭建lnmp(php7.1+nginx+mysql5.7) https://jingyan.baidu.com/article/215817f7a10bfb1eda14238b.ht ...

  3. Django部署,Django+uWSGI+nginx+Centos部署

    说明:系统是在windows上开发的,使用django1.11.4+python3.6.3开发,需要部署在centos6.4服务器上. 第一步:在Centos6.4上安装Python3.6.2 安装请 ...

  4. 阿里云 centOS7.4新装nginx 不能访问

    反复装了几遍ngxin,什么防火墙,nginx.conf改了好几次都不能访问外网的ip, 原因是阿里云这货新的服务器根本就没开通443,80端口,真是坑人啊 点击配置规则,增加端口就行了 添加安全规则 ...

  5. centos7 nginx配置httpsCenos(6.6/7.1)下从源码安装Python+Django+uwsgi+nginx环境部署(二)

     1.yum安装nginx 下载对应当前系统版本的nginx包(package) # wget  http://nginx.org/packages/centos/7/noarch/RPMS/ngin ...

  6. docker简单使用+django+uwsgi+nginx项目部署

    使用docker 搭建 centos7 环境: 主机环境:windows 10专业版 一.安装docker Hub.docker.com官网下载 docker for windows 安装完成后,任务 ...

  7. django+uwsgi+nginx的部署

    1.下载与项目对应的django版本pip3 install django==1.11.16 -i https://pypi.douban.com/simple/2.用django内置的wsgi模块测 ...

  8. django+uwsgi+nginx+sqlite3部署+screen

    note:可通过该命令查找文件未知 sudo find / -name filename 一:项目(github) ssh root@server ip         #  连接你的服务器 git ...

  9. Django+Uwsgi+Nginx项目部署文档

    一.基本环境搭建 1)查看服务器 [root@Myjumpserver ~]# cat /etc/sysconfig/selinux SELINUX=disabled SELINUXTYPE=targ ...

随机推荐

  1. Python基础入门教程(3)

    人生苦短,我学Pyhton Python(英语发音:/ˈpaɪθən/), 是一种面向对象.解释型计算机程序设计语言,由Guido van Rossum于1989年底发明,第一个公开发行版发行于199 ...

  2. python中的变量和算数运算

    先说下变量的作用: 用来保存数据,为什么要保存? 后面要使用. 变量的概念: 变量就是用来存储一些信息,供程序以后调用或者操作修改.变量为标记数据提供了一种描述性的名字,以便我们的程序可以被程序的阅读 ...

  3. .NET Core 2.0 Preview 1发布下载和文档

    .NET Core 2.0.0 Preview 1 发布于 2017 5.10. 你可以通过 Visual Studio 2017 Preview 15.3, Visual Studio for Ma ...

  4. CSS 基础:定位元素(3)<思维导图>

    这段时间利用一下间隙时间学习了CSS的基础知识,主要目的是加深对CSS的理解,虽然个人主要工作基本都是后台开发,但是个人觉得系统学习一下CSS的基础还是很有必要的.下面我学习CSS时做的思维导图(全屏 ...

  5. Java设计模式学习记录-外观模式

    前言 这次要介绍的是外观模式(也称为门面模式),外观模式也属于结构型模式,其实外观模式还是非常好理解的,简单的来讲就是将多个复杂的业务封装成一个方法,在调用此方法时可以不必关系具体执行了哪些业务,而只 ...

  6. IOS中input键盘事件支持的解决方法

    欢迎大家去我的网站详细查看http://genghongshuo.com.cn/ IOS中input键盘事件keyup.keydown.等支持不是很好, 用input监听键盘keyup事件,在安卓手机 ...

  7. 如何为你的树莓派安装一个WIN10系统?(非iot)

    Windows10 ARM版,是的,这次并非IoT版,而是功能与PC一致的ARM版.需要注意的是,这个方法并非官方提供的,可用性上会有一些坑,热衷于尝试的玩家可以一试! 准备项目:树莓派3B以上型号, ...

  8. C#格式规范

    前言 之前工作中整理的一篇编码规范. 代码注释 注释约定 只在需要的地方加注释,不要为显而易见的代码加注释 使用 /// 生成的xml标签格式的文档注释 方法注释 所有的方法都应该以描述这段代码的功能 ...

  9. GroupBy分组的运用和linq左连接

    最简单的分组 var conHistoryList = conHistoryData.GroupBy(g => g.personId); 就是conHistoryData是一个IQueryabl ...

  10. SQLServer删除登录记录用户名和密码

    介绍: 作为一名开发人员都会知道我们做的项目都要用到数据库,数据库都需要账号和密码,然而问题来了,做的东西多了那些没用的账号和密码还在哪里纠缠着我们.所有我们不能忍了删除掉他. 网上很多都是2008的 ...