1.安装项目环境

系统环境:ubuntu16.04

python环境:python3.5.2

Django版本:django1.11.7

nginx环境:nginx_1.10.3

虚拟环境:virtualenv15.1.0

uwsgi版本:uwsgi2.0.17.1

安装并进入项目虚拟环境:

sudo apt-get install virtualenv
virtualenv -p python3 env_my_project
source env_my_project/bin/activate
pip install -r requirements.txt 

2.项目配置及运行测试

修改项目配置文件:
cp my_project/settings_local.py.example my_project/settings_local.py 修改es配置文件:
cp rs_es/es_settings.py.example rs_es/es_settings.py wsgi.py:
import os
from django.core.wsgi import get_wsgi_application
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "my_project.settings_local")
application = get_wsgi_application()
项目运行测试:
python manage.py collectstatic # 收集静态文件
python manage.py makemigrations
python manage.py migrate
python manage.py runserver 0.0.0.0:8001

3.NGINX和UWSGI相关配置

sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/my_project
sudo ln -s /etc/nginx/sites-available/my_project /etc/nginx/sites-enabled/
sudo vim /etc/nginx/sites-enabled/my_project nginx配置:
upstream my_project{
server unix:///var/run/my_project.sock;
} server {
listen 8001; //服务的端口号 服务通过nginx与uwsgi通信来启动 server_name 192.168.xx.xx; //nginx代理的ip
charset utf-8; # max upload size
client_max_body_size 10M; # send all non-media requests to the Django server.
location / {
uwsgi_pass my_project;
include /etc/nginx/uwsgi_params;
} location /static/ {
root /home/ubuntu/my_project;
}
} Uwsgi配置:
sudo mkdir /var/log/uwsgi
sudo chmod -R 777 /var/log/uwsgi uwsgi.ini:
[uwsgi]
chdir=/home/ubuntu/my_project
home=/home/ubuntu/my_project/env_my_project
module=my_project.wsgi:application socket=/var/run/my_project.sock
chmod-socket = 666 master=True
processes = 5
max-requests=5000 # clear environment on exit
vacuum=True pidfile=/var/run/my_project.pid
daemonize=/var/log/uwsgi/my_project.log # git pull 自动重启服务
touch-reload=.git/index

4.配置Emperor mode监听和系统自动启动uwsgi

配置Emperor mode监听
sudo mkdir /etc/uwsgi
sudo mkdir /etc/uwsgi/vassals
sudo ln -s /home/ubuntu/my_project/uwsgi.ini /etc/uwsgi/vassals/ 系统自动启动uwsgi
sudo vim /etc/rc.local
/usr/local/bin/uwsgi --emperor /etc/uwsgi/vassals

5.通过uwsgi启动django服务

启动uwsgi
uwsgi --ini uwsgi.ini 重启nginx
sudo service nginx restart 启动django服务
sudo uwsgi --reload /var/run/my_project.pid

此时在浏览器通过ngnix代理出来的ip和端口即可访问服务

nginx+uwsgi启动Django项目的更多相关文章

  1. 使用Nginx+uWSGI部署Django项目

    1.linux安装python3环境 参考链接:https://www.cnblogs.com/zzqit/p/10087680.html 2.安装uwsgi pip3 install uwsgi l ...

  2. 学习VirtualEnv和Nginx+uwsgi用于django项目部署

    以下叙述中用到的操作系统:Linux CentOS 6.X. 最近几天了解一下VirtualEnv,Apache+Daemon mode,Nginx+uwsgi的概念,并且在项目中实验性部署了一下(目 ...

  3. nginx+uwsgi部署django项目

    1.django项目部署前需要生成admin的静态资源文件 (1)生成admin的静态资源文件 # 关闭debug模型 DEBUG = False # 允许所有域名访问 ALLOWED_HOSTS = ...

  4. Nginx+uWSGI启动Django

    在之前的几篇博客中对Django的功能做了初步实践,这里链接贴一下: Django的安装和启动 Django之--网页展示Hello World! Django之--通过MVC架构的html模板展示H ...

  5. Nginx + uWSGI 部署Django 项目,并实现负载均衡

    一.uWSGI服务器 uWSGI是一个Web服务器,它实现了WSGI协议.uwsgi.http等协议.Nginx中HttpUwsgiModule的作用是与uWSGI服务器进行交换. 要注意 WSGI ...

  6. CENTOS7 使用 Nginx + Uwsgi 部署 Django 项目

    写在前面的话 最近总是见到有新学 Django 的朋友在部署自己的项目到 Linux 上面的时候运行不起来,所以就动手写了这篇博客. 对于不会搭建 Python 3 环境的朋友可以参考前面的博客[CE ...

  7. 使用uwsgi启动django项目

    在 manage.py 同级目录 创建 uwsgi.ini 文件 ,内容如下: [uwsgi] # 对外提供 http 服务的端口 http = :18123 #the local unix sock ...

  8. 阿里云搭建nginx + uWSGI 实现 django 项目

    系统版本 CentOS/7 64位 1.安装使用python3 创建python3目录 sudo mkdir /usr/local/python3 进入python3目录 cd /usr/local/ ...

  9. nginx + uwsgi 部署django项目

    因项目需求,需要部署django项目,这里是基础的nginx配合uwsgi部署django,后续会采用docker部署的方式 环境: centos7 python3.5.4 django2.1.4 u ...

随机推荐

  1. javascript移动端禁止页面滑动的解决方案

    1 前言 移动端网页,发现ios平台的iphone或者ipad,网页可以上下左右移动,而Android版则不会.仅作为记录使用. 2 代码 var mo=function(e){e.preventDe ...

  2. ORACLE透明加密

    --官网文档:https://www.oracle.com/technetwork/cn/tutorials/tde-096009-zhs.html#t概述Oracle 数据库 10g 第 2 版透明 ...

  3. STM32应用实例十四:利用光敏二极管实现光度测量

    最近我们在开发臭氧发生器时,需要监测生成的臭氧的浓度,于是想到使用光度计来测量.因为不同浓度的臭氧对管的吸收作用是不相同的,于是检测光照强度的变化就可以得到相应的浓度数据. 1.硬件设计 此次光照度检 ...

  4. Mysql8.0安装步骤

    Mysql8.0安装步骤 2018年05月10日 14:39:05 93年的香槟 阅读数:19628 标签: mysql 更多 个人分类: 数据库   版权声明:本文为博主原创文章,未经博主允许不得转 ...

  5. Confluence 6 确定一个生产系统备份方案

    Atlassian 推荐创建一个可选的数据库备份方案: 使用你数据库提供的备份和恢复工具 为了避免数据不完整和备份中断,我们推荐你在备份和恢复 Confluence 数据库的时候关闭 Confluen ...

  6. 前端html

    前端html html   是一种描述网页的语言,是超文本标记语言 :hyper Text Markup Lauguage 是一种标记语言[标记语言是一套标记标签 markup tag]使用标记标签来 ...

  7. SpringBoot集成多数据源

    多数据源就是连接多个数据库 1.在application.properties中配置两个数据库 spring.datasource.driverClassName=com.mysql.jdbc.Dri ...

  8. python冒泡排序法

  9. 性能测试五十:Jmeter+Influxdb+Grafana实时数据展示系统搭建

    如果用生成jtl文件再分析结果的方式的话,每一次请求就会往jtl里面写一条数据,在进行长时间的稳定性测试的时候,特别是当TPS很高的时候,写入的数据会非常的大,这个时候等稳定性测试完成,再对jtl进行 ...

  10. 自动把动态的jsp页面(或静态html)生成PDF文档,并且上传至服务器

    置顶2017年11月06日 14:41:04 阅读数:2311 这几天,任务中有一个难点是把一个打印页面自动给生成PDF文档,并且上传至服务器,然而公司框架只有手动上传文档,打印时可以保存为PDF在本 ...