之前写过一个博客关于如何安装django的,见下网址,

http://www.cnblogs.com/qinhan/p/8732626.html

还有一个网址如何安装nginx的

http://www.cnblogs.com/qinhan/p/8780098.html

这次说说django搭配nginx+uwsgi部署生产环境

部署之前测试环境把防火墙都关掉,用以下两条命令

iptables -X

iptables -F

首先安装uwsgi, 可以登陆官网下载

http://uwsgi-docs.readthedocs.io/en/latest/Download.html

随后查看安装手册

http://uwsgi-docs.readthedocs.io/en/latest/Install.html

yum groupinstall "Development Tools"
yum install python
yum install python-devel
python uwsgiconfig.py --build
python3 setup.py install   #官方文档里面没写这步,但是需要执行


官方文档用的是标红的安装过程,执行红色的python uwsgiconfig.py --build 需要继续执行python3 setup.py install才能用的时候环境变量找到uwsgi 以下截取部分安装过程
(monitor2) insp_ap@inspect01:~/project/hanqin/django/monitor2/tmp/uwsgi-2.0.17> python3 setup.py install
################# uWSGI configuration ################# kernel = Linux
execinfo = False
ifaddrs = True
locking = pthread_mutex
event = epoll
timer = timerfd
filemonitor = inotify
pcre = False
routing = False
capabilities = False
yaml = embedded
json = False
ssl = False
xml = False
debug = False
plugin_dir = .
zlib = True
ucontext = True
malloc = libc ############## end of uWSGI configuration #############
total build time: seconds
*** uWSGI is ready, launch it with /home/insp_ap/project/hanqin/django/monitor2/bin/uwsgi ***
running build
running build_py
creating build
creating build/lib
copying uwsgidecorators.py -> build/lib
running install_lib
copying build/lib/uwsgidecorators.py -> /home/insp_ap/project/hanqin/django/monitor2/lib/python3./site-packages
byte-compiling /home/insp_ap/project/hanqin/django/monitor2/lib/python3./site-packages/uwsgidecorators.py to uwsgidecorators.cpython-.pyc
running install_egg_info
running egg_info
creating uWSGI.egg-info
writing uWSGI.egg-info/PKG-INFO
writing dependency_links to uWSGI.egg-info/dependency_links.txt
writing top-level names to uWSGI.egg-info/top_level.txt
writing manifest file 'uWSGI.egg-info/SOURCES.txt'
reading manifest file 'uWSGI.egg-info/SOURCES.txt'
writing manifest file 'uWSGI.egg-info/SOURCES.txt'
Copying uWSGI.egg-info to /home/insp_ap/project/hanqin/django/monitor2/lib/python3./site-packages/uWSGI-2.0.-py3..egg-info
running install_scripts
(monitor2) insp_ap@inspect01:~/project/hanqin/django/monitor2> uwsgi --version
2.0.17

如果没有报错,表明安装完成,安装完成后可以用对应命令uwsgi --version查看安装版本

接下来启动uwsgi, 我这里只说用配置文件进行启动

insp_ap@inspect01:~/project/hanqin/django/monitor2/config> view uwsgi.ini 
[uwsgi]
# 项目目录
chdir=/home/insp_ap/project/hanqin/django/monitor2/jiankong2
# 指定项目的application
module=jiankong2.wsgi:application
# 指定sock的文件路径
socket=/home/insp_ap/project/hanqin/django/monitor2/tmp/uwsgi.sock
#socket=127.0.0.1:
# 进程个数
workers=
pidfile=/home/insp_ap/project/hanqin/django/monitor2/tmp/uwsgi.pid
# 指定IP端口
http=10.129.6.78:
# 指定静态文件
static-map=/static=/home/insp_ap/project/hanqin/django/monitor2/jiankong2/statics
# 启动uwsgi的用户名和用户组
uid=insp_ap
gid=insp_ap
# 启用主进程
master=true
# 自动移除unix Socket和pid文件当服务停止的时候
vacuum=true
# 序列化接受的内容,如果可能的话
thunder-lock=true
# 启用线程
enable-threads=true
# 设置自中断时间
harakiri=
# 设置缓冲
post-buffering=
# 设置日志目录
daemonize=/home/insp_ap/project/hanqin/django/monitor2/tmp/uwsgi.log 执行启动命令
(monitor2) insp_ap@inspect01:~/project/hanqin/django/monitor2/config> uwsgi --ini uwsgi.ini  可以看到进程启动,并且访问网站成功

(monitor2) insp_ap@inspect01:~/project/hanqin/django/monitor2/config> ps -fu $USER | grep uwsgi
insp_ap 9576 1 28 12:00 ? 00:00:00   uwsgi --ini uwsgi.ini
insp_ap 9942 9576 0 12:00 ? 00:00:00 uwsgi --ini uwsgi.ini
insp_ap 9943 9576 0 12:00 ? 00:00:00 uwsgi --ini uwsgi.ini


接下来我们要加入Nginx, 做成最终的nginx+django+uwsgi模式

首先修改uwsgi.ini文件,可以看到和前面相比修改了部分内容,其中端口8001要注意,待会会和nginx里面的conf文件里面的一个配置相同
(monitor2) insp_ap@inspect01:~/project/hanqin/django/monitor2/config> view uwsgi.ini # uwsig使用配置文件启动
[uwsgi]
# 项目目录
chdir=/home/insp_ap/project/hanqin/django/monitor2/jiankong2
# 指定项目的application
module=jiankong2.wsgi:application
# 指定sock的文件路径
#socket=/home/insp_ap/project/hanqin/django/monitor2/tmp/uwsgi.sock
socket=10.129.6.78:8001
# 进程个数
workers=
pidfile=/home/insp_ap/project/hanqin/django/monitor2/tmp/uwsgi.pid
# 指定IP端口
#http=144.131.252.51:
# 指定静态文件
#static-map=/static=/home/yy1s/myproject/mon2/jiankong2/statics
# 启动uwsgi的用户名和用户组
uid=
gid=
# 启用主进程
master=true
# 自动移除unix Socket和pid文件当服务停止的时候
vacuum=true
# 序列化接受的内容,如果可能的话
thunder-lock=true
# 启用线程
enable-threads=true
# 设置自中断时间
harakiri=
# 设置缓冲
post-buffering=
# 设置日志目录
daemonize=/home/insp_ap/project/hanqin/django/monitor2/tmp/uwsgi.log 修改nginx配置

inspect01:/usr/local/nginx1_12_2/conf # pwd
/usr/local/nginx1_12_2/conf
inspect01:/usr/local/nginx1_12_2/conf # view nginx.conf

#这里只显示修改的部分内容,其中location /static是指向django项目里面的静态内容包括css font js等,并且8001端口需要和前面的uwsgi.ini配置的8001端口相同

server {
listen 8080;
server_name localhost;

#charset koi8-r;

#access_log logs/host.access.log main;
location /static {
#expires 30d;
#autoindex on;
#add_header Cache-Control private;
alias /home/insp_ap/project/hanqin/django/monitor2/jiankong2/statics;
}

location / {
include uwsgi_params;
uwsgi_pass 10.129.6.78:8001;
uwsgi_read_timeout 20;
#root html;
#index index.html index.htm;
}

配置完成以后启动nginx以及uwsgi

inspect01:/usr/local/nginx1_12_2/sbin # ./nginx

(monitor2) insp_ap@inspect01:~/project/hanqin/django/monitor2/config> uwsgi --ini uwsgi.ini

启动以后可以看到8080以及8001都处于监听状态

inspect01:/usr/local/nginx1_12_2/sbin # netstat -an | grep 8080
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN

inspect01:/usr/local/nginx1_12_2/sbin # netstat -an | grep 8001
tcp 0 0 10.129.6.78:8001 0.0.0.0:* LISTEN

访问网页,可以看到10.129.6.78:8080 端口可以访问

这里说明下8080端口是前端页面也就是浏览器访问Nginx的端口,8001端口为uwsgi和nginx之间通讯的端口,

如果暂时搞不明白就先按照我上面的配置配起来以后在研究。

centos 7下 django 1.11 + nginx 1.12 + uwsgi 2.0的更多相关文章

  1. CentOS 7 下安装 LEMP 服务(nginx、MariaDB/MySQL 和 php)

    原文 CentOS 7 下安装 LEMP 服务(nginx.MariaDB/MySQL 和 php) LEMP 组合包是一款日益流行的网站服务组合软件包,在许多生产环境中的核心网站服务上起着强有力的作 ...

  2. CentOS 7 下 JDK1.8+Maven+Nginx+MySql+Git+Redis环境安装

    CentOS 7 下 JDK1.8+Maven+Nginx+MySql+Git+Redis环境安装 安装目录准备 新建data目录,用来放下载的软件 mkdir -p /data 切换到该data目录 ...

  3. CentOS环境下使用GIT基于Nginx的私服搭建全过程

    阅读本文前你必须预先装好CentOS并且已经安装和配置好Nginx了. 安装GIT私服套件 安装centos6.5-centos7.0 安装nginx yum install -y?git gitwe ...

  4. Linux(CentOS)下,下载安装Nginx并配置

    1.准备工作选首先安装这几个软件:GCC,PCRE(Perl Compatible Regular Expression),zlib,OpenSSL.Nginx是C写的,需要用GCC编译:Nginx的 ...

  5. Linux CentOS 7 下dotnet core webpai + nginx 部署

    参考:https://www.jianshu.com/p/b1f573ca50c7 跟着做到,配置nginx访问dotnet core网站时,报错了. 错误如下所示—— 查看nginx的错误日志: c ...

  6. CentOS 7下使用systemctl为Nginx启用进程守护实现开机自启

    1.cd到指定目录 cd /usr/lib/systemd/system 2.创建nginx.service vi nginx.service 3.输入以下内容,路径为nginx安装路径 [Unit] ...

  7. 基于CentOS 7下最小化安装的操作系统搭建Zabbix3.0环境

    环境说明 系统版本:CentOS Linux release 7.3.1611 (Core) 内核版本:3.10.0-514.el7.x86_64 Httpd版本:Apache/2.4.6 (Cent ...

  8. CentOS 环境下基于 Nginx uwsgi 搭建 Django 站点

    因为我的个人网站 restran.net 已经启用,博客园的内容已经不再更新.请访问我的个人网站获取这篇文章的最新内容,CentOS 环境下基于 Nginx uwsgi 搭建 Django 站点 以下 ...

  9. CentOS下 Django部署 nginx+uWSGI+Django(二)

    该篇内容承接CentOS下 Django部署 uWSGI+Django(一),细节流程可参考此篇内容. 1. 当前系统 CentOS Linux release 7.6.1810 Python 2.7 ...

随机推荐

  1. python数据格式化之pprint

    python数据格式化之pprint 2017年06月17日 13:56:33 阅读数:2291 简介 pprint模块 提供了打印出任何Python数据结构类和方法. 模块方法: 1.class p ...

  2. WordPress版微信小程序2.4版发布

    自从发布2017年9月16日WordPress版微信小程序2.2.8版本后,这个一个多月来,WordPress版微信小程序,在经过一些比较小的更新后,今天发布阶段性的版本:2.4版 .这版本主要是功能 ...

  3. composer在phpstorm中安装代码库

    E:\php\PHPTutorial\WWW\kmmhtt>composer install composer 安装地址 :https://getcomposer.org/download/

  4. JAVA性能优化:35个小细节让你提升java代码的运行效率

    代码优化,一个很重要的课题.可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没用,但是, ...

  5. Tesseract-OCR的简单使用与训练

    Tesseract,一款由HP实验室开发由Google维护的开源OCR(Optical Character Recognition , 光学字符识别)引擎,与Microsoft Office Docu ...

  6. python_09 文件处理流程,文件操作方法

    文件处理流程 1.打开文件,得到文件句柄并赋值给一个变量 2.通过句柄对文件进行操作 3.关闭文件 f=open('test.txt',encoding='gbk') data = f.read() ...

  7. push() 方法将一个或多个元素添加到数组的末尾,并返回新数组的长度

    var numbers = [1, 2, 3]; numbers.push(4); console.log(numbers); // [1, 2, 3, 4] numbers.push(5, 6, 7 ...

  8. MySQL master-slave主从复制环境搭建初试

    环境为centos 7.2+mysql 5.7,网上教程很多,原理也不复杂(深知自己踩的坑还不够) 正常情况下,配置起来比较简单.另外,根据个人感受,MySQL的复制感觉要比SQL Server的复制 ...

  9. 深度学习中,使用regularization正则化(weight_decay)的好处,loss=nan

    刚开始训练一个模型,自己就直接用了,而且感觉训练的数据量也挺大的,因此就没有使用正则化, 可能用的少的原因,我也就不用了,后面,训练到一定程度,accuracy不上升,loss不下降,老是出现loss ...

  10. URL和URI

    (一)URL和URI是什么 1.URL(Universal Resource Locator) 是统一资源定位符,对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址. ...