本机环境介绍

虚拟机操作系统版本如下

[root@node1 ~]# cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)

IP地址为:192.168.3.3/24

安装epel源

rpm -ivh http://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm
# 或者
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

如果之前有epel源,需要先删除:

mv /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.backup
mv /etc/yum.repos.d/epel-testing.repo /etc/yum.repos.d/epel-testing.repo.backup

安装Nginx依赖包

yum install -y openssl-devel pcre-devel

安装Nginx

[root@node1 /usr/local/src/nginx-1.10.2]# wget http://nginx.org/download/nginx-1.10.2.tar.gz
[root@node1 /usr/local/src]# tar xf nginx-1.10.2.tar.gz
[root@node1 /usr/local/src]# cd nginx-1.10.2/
[root@node1 /usr/local/src/nginx-1.10.2]# ./configure
[root@node1 /usr/local/src/nginx-1.10.2]# make && make install

修改nginx配置文件如下:

[root@EMMGTEST2 ~]# egrep -v '^$|#' /usr/local/nginx/conf/nginx.conf
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
gzip on;
server {
listen 80;
server_name deng t20.com;
access_log /var/log/nginx/myweb_access.log;
error_log /var/log/nginx/myweb_error.log;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:8000;
uwsgi_read_timeout 2;
}
location /static {
alias /application/django/mysite/static/;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}

创建nginx accesslog路径

[root@node1 /usr/local/src/nginx-1.10.2]# mkdir /var/log/nginx

检查配置文件没有问题

[root@node1 /usr/local/src/nginx-1.10.2]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

启动nginx

[root@node1 /usr/local/src/nginx-1.10.2]# /usr/local/nginx/sbin/nginx

安装pip(python的安装程序)

wget https://bootstrap.pypa.io/get-pip.py
python get-pip.py
#当有多个版本的python时,要在特定的版本安装pip需要用那个版本的python执行get-pip.py, 比如在python2.6上安装pip:python2.6 get-pip.py

安装uwsgi

pip install uwsgi

安装django,版本不正确可能起不来,版本要和自己的电脑上的版本一致,要不会有问题。django在1.10的时候template还有session貌似都做过改动,

pip install django==1.9.8

创建目录

mkdir /wis/django

把mysite文件夹拷贝到django下面

确认uwsgi.ini配置文件没有问题:

[root@node1 /wis/django/mysite]# egrep -v '^$|#' uwsgi.ini
[uwsgi]
socket = :8000
chdir = /wis/django/mysite
module = mysite.wsgi
master = true
processes = 4
vacuum = true [root@node1 /wis/django/mysite]# pwd
/wis/django/mysite

在当前目录启动uwsgi

[root@node1 /wis/django/mysite]#nohup uwsgi --ini uwsgi.ini &

一般生产中我们都是通过unix socket文件来传输,如下(socket属性):

[root@v178 ~]# stat /run/mysite.socket
文件:"/run/mysite.socket"
大小:0 块:0 IO 块:4096 套接字
设备:12h/18d Inode:99694 硬链接:1
权限:(0664/srw-rw-r--) Uid:( 0/ root) Gid:( 995/ nginx)
最近访问:2017-05-15 08:55:58.154113380 +0800
最近更改:2017-05-15 08:55:58.154113380 +0800
最近改动:2017-05-15 08:55:58.154113380 +0800
创建时间:-
[root@v178 ~]# ll /run/mysite.socket
srw-rw-r-- 1 root nginx 0 5月 15 08:55 /run/mysite.socket

我们的uwsgi配置文件要修改如下:

[root@v178 moji]# cat uwsgi.ini |grep -v '#'
[uwsgi]
socket = /run/mysite.socket
chdir = /application/django/moji
module = moji.wsgi
master = true
processes = 4
vacuum = true
chmod-socket = 664
chown-socket = root:nginx

nginx location配置如下:

location / {
include uwsgi_params;
uwsgi_pass unix:/run/mysite.socket;
}

本文没有做优化设置,要做进一步的了解,大家可以参考nginx官方文档了。

还有要说的是socket文件之所以放到/run下面是由于在/tmp下面有权限问题(开始放到tmp下面是没问题的,后来不知道为啥就不行了),和这个最后的t有关系,具体的就没仔细研究了

[root@v178 ~]# ls -ld /tmp
drwxrwxrwt. 19 root root 4096 5月 15 09:17 /tmp

Nginx+Django搭建的更多相关文章

  1. Django搭建及源码分析(三)---+uWSGI+nginx

    每个框架或者应用都是为了解决某些问题才出现旦生的,没有一个事物是可以解决所有问题的.如果觉得某个框架或者应用使用很不方便,那么很有可能就是你没有将其使用到正确的地方,没有按开发者的设计初衷来使用它,当 ...

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

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

  3. Django搭建博客记(一)

    这里记录一些 Django 搭建博客遇到的一些问题 参考书籍为 Django by Example, 这里记录与书籍内容不包含的内容. 搭建环境: 阿里云 ECS + CentOS7 一开始搭建的时候 ...

  4. 用 Python+nginx+django 打造在线家庭影院

    用 Python+nginx+django 打造在线家庭影院 2018年11月29日 08:46:59 清如許 阅读数:1528   我喜欢看电影,尤其是好的电影,我会看上三四遍,仔细感受电影带给我的 ...

  5. Nginx环境搭建与使用

    一.背景 之前测试的项目前后端的"路由"(负责把前端发过来的请求转发到相应的后端服务上)要用Nignx来取代原来的tomcat的http server功能,做这个替换的原因是Nig ...

  6. Django搭建简易博客

    Django简易博客,主要实现了以下功能 连接数据库 创建超级用户与后台管理 利用django-admin-bootstrap美化界面 template,view与动态URL 多说评论功能 Markd ...

  7. Nginx+Django+Uwsgi+php

    在FreeBSD结合Nginx和FastCGI简单配置Django和PHP  http://blog.chinaunix.net/uid-11131943-id-3031767.html Nginx+ ...

  8. nginx+ffmpeg搭建rtmp转播rtsp流的flash服务器

    本文概要: nginx是非常优秀的开源服务器,用它来做hls或者rtmp流媒体服务器是非常不错的选择.本文介绍了一种简易方法快速搭建rtmp流媒体服务器,也叫rtsp转播,数据源不是读取文件,而是采用 ...

  9. Linux下php+mysql+nginx编译搭建(一)

    之前一直都是一键搭建的webserver,可是一键搭建的环境相对来说都是比較老的.假设要用比較新的环境,特别是正式server,就必须自己手动编译搭建了(下面搭建基于linux centos6.5 3 ...

随机推荐

  1. Dubbo-admin管理平台的安装

      1.到地址 https://github.com/alibaba/dubbo 下载dubbo源码  2.解压缩zip文件到 “ D:\技术资料\zookeeper\dubbo-master\dub ...

  2. android 开发 Intent使用技巧点

    判断Intent是否为null: if (intent.resolveActivity(getPackageManager())!=null) { //判断Intent是否为null // Inten ...

  3. leetcode102

    本题是广度优先遍历(BFS)实现树的层次遍历,使用队列实现. class Solution { public: vector<vector<int>> levelOrder(T ...

  4. [Ting's笔记Day7]活用套件carrierwave gem:(2)利用Amazon S3架设图片服务器

    来到第7篇了!培养写作习惯真是不容易:) 在我的上一篇文章活用套件carrierwave gem:(1)在Rails实现图片上传功能,上传图片功能已经完成啦!但是目前图片仅能上传在自己的本地文件夹内孤 ...

  5. vue 关键词模糊查询

    页面html,绑定的列表数据为datas,关键词为 select_words,如下图 其中d.accounts和d.roleName是需要进行搜索的字段,也可以进行大小写都可以

  6. 微信小程序 验证码倒计时组件

    https://blog.csdn.net/susuzhe123/article/details/80032224

  7. vue 初始化data中的数据

    Object.assign(this.$data, this.$options.data());

  8. Linux shell read 解析

    read是一个重要的bash命令,它用于从键盘或标准输入中读取文本,我们可以用read以交互的方式读取来自用户的输入,不过read能做的可远不止这些,当从键盘读取用户输入的时候,只有按下回车键才标志输 ...

  9. Linux mysql 联表查询

    在rhce考试题中,第21.22题为数据库查询题 题目: 在system1上创建一个Maria DB数据库,名为Contacts,要求: 数据库应该包含来自数据库users.mdb的内容,数据库只能被 ...

  10. [leetcode]21. Merge Two Sorted Lists合并两个链表

    Merge two sorted linked lists and return it as a new list. The new list should be made by splicing t ...