Django部署——uwsgi+Nginx

Django部署——uwsgi+Nginx(超详细)

环境:
python3.6
centos 7
Django1.11
用Django写了个小网站,只能在自己本地跑一跑!这怎么行?听说可以部署在云服务器上,这样别人就可以访问了!

biu~

从哪儿开始?就从Django开始吧!老规矩,按步骤:

1、本地跑起来Django

这里不讲Django项目实施过程,假设你已经写了一个Django项目,并且在本地127.0.0.1:8000能够跑起来。喏,给你个参考,项目大概长这样:

Django Project

  • kindle目录为我创建的Django App

2、修改项目配置

也就是项目目录下的settings.py文件,主要强调几个地方:
①关闭DEBUG模式:

具体为

关闭DEBUG模式

②修改ALLOWED_HOSTS:

具体为

ALLOWED_HOSTS

③配置静态文件存放路径:

具体为

静态文件路径

修改好配置之后执行:

python manage.py collectstatic

将项目用到的静态文件复制到项目根目录下的static文件中

静态文件夹

3、安装uwsgi和Nginx

这个没什么说的。。。在自己的云服务器上装好这两个工具
安装好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服务器:

uwsgi --http :8000 --wsgi-file test.py

如果可以正常启动而不报错那就应该没问题,不放心的话再在终端验证一下:

wget http://127.0.0.1:8000
看一下能否正确获取内容

4、配置项目的uwsgi

在项目所在文件夹下创建uwsgi.ini配置文件,也就是这里

uwsgi.ini

在uwsgi.ini里进行如下配置:

[uwsgi]
# Django-related settings

# 这里的端口可以根据自己需要设定
socket = 127.0.0.1:8001        

# the base directory (full path)
# 这个是Django项目的根目录,也就是包含App的那个目录,仔细对照上图
chdir           = /home/python/book2kindle

# Django s wsgi file
# 这里是项目名(不是App名).wsgi
module          = book2kindle.wsgi

# process-related settings
# master
master          = true

# maximum number of worker processes
processes       = 32

# ... with appropriate permissions - may be needed
# chmod-socket    = 664
# clear environment on exit
vacuum          = true

plugin python = true

# 这个是项目的虚拟python环境,如果没用虚拟环境,可以不设定
home = /home/python/book2kindle_env

5、配置项目的nginx

找到nginx的配置文件夹,centos7的nginx配置文件在/etc/nginx下,该路径下有一个nginx.conf总配置文件,还有两个文件夹./conf.d、./default.d,我们将nginx.conf复制一份到conf.d文件夹下,命名为nginx.conf(或者项目名.conf)进行如下修改(根据中文注释进行相应配置即可):

http {
    upstream django {
        # 注意这里的server要和uwsgi.ini配置文件中的socket保持一致
        server 127.0.0.1:8002; # for a web port socket
    }
    server {
        listen       80;
        server_name  xxx.com;  # 这里填自己的域名或者服务器的ip(决定你今后访问网站的方式)
        charset      utf-8;
        root         /usr/share/nginx/html;
        location / {
        root        /home/python/book2kindle/kindle;  # 这是Django App的路径
            uwsgi_pass  django;
            include     uwsgi_params; # the uwsgi_params file you installed
        }
        location /static {
            # Django项目静态文件的路径
            alias /home/python/book2kindle/static;
        }
    }

}

6、启动uwsgi和nginx

进入uwsgi.ini文件夹下执行:

uwsgi --ini uwsgi.ini

在终端执行:

service nginx restart

然后就可以根据域名(前提是要将域名解析到服务器ip地址)或者服务器ip来访问网站了!

OK,完事!就是这么简单!

原文地址:https://www.cnblogs.com/yikemogutou/p/12497580.html

时间: 2024-11-09 22:08:30

Django部署——uwsgi+Nginx的相关文章

Django 部署 uwsgi + nginx + supervisor

Django 部署 uwsgi + nginx + supervisor https://hacpai.com/article/1460607620615?p=1&m=0 zonghua ? 6 个月前 ? 浏览 1.7K ? 回帖 15Python  Django  uwsgi  NGINX 更新依赖 pip install uwsgi 编辑配置文件 uwsgi.ini [uwsgi] # Django-related settings chdir = /home/zonghua/Docume

django 本地项目部署uwsgi+nginx

一 .django 本地项目部署uwsgi 1 本地部署项目 uwsgi安装测试 通过uwsgi 进行简单部署 安装uwsgi命令:pip install uwsgi -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com 提示:-i 后面使用是豆瓣加速源 2 测试uwsgi 是否安装成功 项目的根目录新建 uwsgi_test.py # 测试py文件# 测试代码# 启动 uwsgi --http :8001 --wsgi

django自带wsgi server vs 部署uwsgi+nginx后的性能对比

一.下面先交代一下测试云主机 cpu: [email protected]:/tmp/webbench-1.5# cat /proc/cpuinfo |grep model model : 69 model name : Intel(R) Core(TM) i5-4260U CPU @ 1.40GHz [email protected]:/tmp/webbench-1.5# mem: [email protected]:/tmp/webbench-1.5# free -m total used

CentOS下 Django部署 uWSGI+Django

由于新冠疫情的缘故,公司要求员工停薪休假,赋闲在家的时候还是决定做点正事,学学习. 本人Linux入门水平,Python入门水平,所以在网上找的那些python部署的帖子,看的是云里雾里的,也没有达到预期的运行效果.好不容易摸索了一个简单易懂的部署方式,记录一下为了加深理解. CentOS Linux release 7.6.1810 Python 2.7.5 # 系统自带的python版本 pip 20.0.2 # 已升过级 查看系统版本 # cat /etc/redhat-release C

Django部署

前段时间,由于实验室项目的需要,要搭建一个web服务器,可怜我只会写python,所以就去研究了一下Django.学习Django是一个愉快的过程,本来就该如此嘛,Python提倡INTERESTING TO CODE,所以很快,我就完成了Django的本地部署,然而在把Django搭到服务器上的是,却是让我捣鼓了一个星期,真真是把我坑苦了. 1.我的环境 在把Django搭建到Apache上时候,首先你需要明确你使用的Django和Apache的版本,嗯,还有Python的版本(这很重要)!

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

【python】Django web项目部署(Nginx+uwsgi)

一.安装uwsgi 通过pip安装uwsgi. pip install uwsgi 测试uwsgi,创建test.py文件: def application(env, start_response):     start_response('200 OK', [('Content-Type','text/html')])     return [b"Hello World"] 通过uwsgi运行该文件. uwsgi --http :8001 --wsgi-file test.py 常用

Django 生产环境部署-记录 nginx+uwsgi+Django

这几天一直研究django生产环境的部署,看了很多文章,都写的很好,有些时候只是环境不太一样,配置过程中出现了很多的问题,例如: uwsgi  ---module   一直运行不起来,,加--file参数才可以... ----亲测可以运行----- 1.安装DJANGO,创建工程项目,确保python manage.py runserver 0.0.0.0:8080 能够正常启动 2.安装uwsgi , 在你的机器上写一个test.py # test.pydef application(env,