nginx基于uwsgi部署Django (单机搭建)

nginx基于uwsgi部署Django (单机搭建)

参考链接: https://blog.51cto.com/wangfeng7399

https://blog.51cto.com/wangfeng7399/2341281

https://blog.csdn.net/shylonegirl/article/details/83030024

安装nignx

yum -y install nginx (需要epel源)

安装依赖包

yum groupinstall "Development tools"
yum -y install zlib-devel bzip2-devel pcre-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel
yum -y install python2-pip
yum -y install python-devel

安装uwsgi,django

pip install --upgrade pip
pip install uwsgi
pip install django==1.11.11

创建django项目

mkdir /data;cd /data
django-admin startproject myapp #在/data下创建django项目myapp

创建app

python manage.py startapp web  

修改myapp/settings.py

myapp是django项目的主目录

 28 ALLOWED_HOSTS = ['*']
 40     'web',
121 STATIC_URL = '/static/'
122 STATICFILES_DIRS=[os.path.join(BASE_DIR, 'static')] 

修改myapp/urls.py

from web.views import *
urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^index/',index)
]

修改 myapp/web/view.py

from django.shortcuts import render,HttpResponse

def index(request):
    return HttpResponse('停车坐爱枫林晚,霜叶红于二月花')
python manage.py runserver 0.0.0.0:8080
#输入网址 http://<服务器ip地址>:8080/index, 如果配置正确,可以访问web服务

启动程序

uwsgi --http :8000 --module myapp.wsgi
#此时uwsgi程序已经开启,切换到django根目录myapp,输入网址 http://<服务器ip地址>:8000, 如果配置正确,可以访问web服务

新建uwsgi配置文件

如果uwsgi开启后可以正常访问web服务,则继续配置uwsgi配置文件

uwsgi支持ini、xml等多种配置方式,本文以 ini 为例, 在/etc/目录下新建uwsgi_nginx.ini,添加如下配置:
[uwsgi]
http = 127.0.0.1:8000
#the local unix socket file than communicate to Nginx
socket = /data/myapp/mysit.socket
#the base directory(full path)
chdir = /data/myapp
#Django's wsgi file
wsgi-file = myapp/wsgi.py
#maximum number of worker processes
processes = 4
#thread numbers startched in each worker process
threads = 2
#clear environment on exit
vacuum            = true
daemonize = /data/myapp/uwsgi.log
py-autoreload=1

启动uwsgi配置文件

uwsgi --ini /etc/uwsgi_nginx.ini

准备配置文件

新建文件 /etc/nginx/uwsgi.conf, 目的是让uwsgi和nginx互相连通

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;

修改配置文件权限

chown nginx.root uwsgi.conf

修改nginx配置文件

/etc/nginx/nginx.conf

location / {
             include /etc/nginx/uwsgi.conf;
             proxy_pass http://127.0.0.1:8000;
             root html;
             index index.html index.htm;
        }

ps: nginx 连接uwsgi一共有三种方式

方式一:
uwsgi.ini 里面指定为http = 127.0.0.1:8000
nginx的配置文件里面需要写
proxy_pass http://127.0.0.1:8000;
方式二:
uwsgi.ini里面指定为socket = 127.0.0.1:8000
nginx的配置文件需要写
include /etc/nginx/uwsgi.conf;
uwsgi_pass 127.0.0.0:8000;
方式三:
uwsgi.ini里面指定为socket = /data/mysite/mysite.socket
nginx的配置文件需要写
include /etc/nginx/uwsgi.conf;
uwsgi_pass unix:/data/mysite/mysite.socket;

验证是否配置成功

输入网址: http://<服务器ip地址>/index  #正常可以访问web服务

原文地址:https://www.cnblogs.com/cjwnb/p/11986646.html

时间: 2024-11-02 14:47:38

nginx基于uwsgi部署Django (单机搭建)的相关文章

nginx 基于uwsgi部署Django

1.安装nginx yum install -y nginx(需要epel源) 2.安装环境 可以考虑使用虚拟化环境,本处不再使用 3.安装uwsgi yum groupinstall "Development tools" yum install zlib-devel bzip2-devel pcre-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel pip install uwsgi 4.安

nginx基于uwsgi部署Django

1.安装nginx yum install -y nginx(需要epel源) 2.安装uwsgi yum groupinstall "Development tools" yum install zlib-devel bzip2-devel pcre-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel python-devel pip install uwsgi 3.安装django pip i

跨过Nginx上基于uWSGI部署Django项目的坑

先说说他们的关系,Nginx和uWSGI都是Web服务器,Nginx负责静态内容,uWSGI负责Python这样的动态内容,二者配合共同提供Web服务以实现提高效率和负载均衡等目的.uWSGI实现了多个协议,如WSGI,HTTP协议,还有它自己的uwsgi协议,想了解更多关于uWSGI和uwsgi协议内容可以查阅这里.这样和fastcgi类似,请求和响应的流程如下: Request > Nginx > uWSGI > Django > uWSGI > Nginx > R

使用supervisor管理nginx和uwsgi部署django项目

使用yum  install  supervisor ,该命令不会产出配置文件 需要执行下条命令: [[email protected]_0_17_centos ~]# echo_supervisord_conf  >  /etc/supervisord.conf 然后添加配置信息,则可以管理服务器了 然后编辑 /etc/supervisord.conf 加上program [program:my_project] command = uwsgi ­­ini /data/my_project/u

nginx + uwsgi 部署 Django+Vue项目

nginx + uwsgi 部署 Django+Vue项目 windows 本地 DNS 解析 文件路径 C:\Windows\System32\drivers\etc 单机本地测试运行方式,调用django第三方的wsgifef单机模块,性能很低 python3 manage.py runserver 0.0.0.0:8000 使用uwsgi 去启动django项目,支持并发更多 准备前后端代码 先从vue前端搞起 解决node环境 更改vue发送请求的接口地址, 这个vue发送的地址,应该是

使用Nginx和uwsgi部署Flask项目

前言 之前用Flask框架开发了一个Python的Web项目,使用Nginx和uWSGI部署起来感觉挺麻烦,过程中还因为对Flask框架的不熟悉,花了好长时间才把应用完全部署起来.下面分享部署成功的相关配置以及部署Flask项目时极可能犯的一个小错误. 一. 配置 1. Flask Web项目源码 Nginx使用的版本是1.6.1,uWSGI是2.0.8,Flask是0.10.1.在Linux环境下安装好Nginx.uWSGI和Flask之后,将使用Flask框架开发的web项目源码放到Linu

使用Nginx+uWSGI部署Django项目

1.linux安装python3环境 参考链接:https://www.cnblogs.com/zzqit/p/10087680.html 2.安装uwsgi pip3 install uwsgi ln -s /usr/local/python3/bin/uwsgi /usr/local/bin/uwsgi #建立软链接 uwsgi --version #检查安装成功 3.基于uwsgi+django项目部署 django项目目录结构(orange_manage为app): uwsgi --ht

生产环境使用Nginx+uwsgi部署Django

在本地运行django应用相对来说还是挺方便的,使用自带的runserver启动即可.如果在生产环境部署django,就要多考虑一些问题了.比如静态文件处理,安全,效率等等 在网上找到了不错的部署的教程,讲解的还是很详细的,我就不重新再整理了. 五步教你实现使用Nginx+uWSGI+Django方法部署Django程序(上) – Django中国社区五步教你实现使用Nginx+uWSGI+Django方法部署Django程序(下) – Django中国社区 但是作为记录,我还是要记录下部署中遇

nginx+uwsgi部署django项目

操作可参考http://www.linuxyw.com/353.html (nginx+uwsgi+django+python环境部署文档) 这里只说明几点我的配置 环境: Nginx版本:1.7.9 Django版本: 1.6.8 Python版本:2.7.5 Uwsgi版本:2.0.9 安装MySQL-python: 最好源码安装,yum install -y MySQL-python可能因为路径问题import MySQLdb失败,下载地址: http://sourceforge.net/