Nginx+Django搭建
本机环境介绍
虚拟机操作系统版本如下
[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搭建的更多相关文章
- Django搭建及源码分析(三)---+uWSGI+nginx
每个框架或者应用都是为了解决某些问题才出现旦生的,没有一个事物是可以解决所有问题的.如果觉得某个框架或者应用使用很不方便,那么很有可能就是你没有将其使用到正确的地方,没有按开发者的设计初衷来使用它,当 ...
- CentOS 环境下基于 Nginx uwsgi 搭建 Django 站点
因为我的个人网站 restran.net 已经启用,博客园的内容已经不再更新.请访问我的个人网站获取这篇文章的最新内容,CentOS 环境下基于 Nginx uwsgi 搭建 Django 站点 以下 ...
- Django搭建博客记(一)
这里记录一些 Django 搭建博客遇到的一些问题 参考书籍为 Django by Example, 这里记录与书籍内容不包含的内容. 搭建环境: 阿里云 ECS + CentOS7 一开始搭建的时候 ...
- 用 Python+nginx+django 打造在线家庭影院
用 Python+nginx+django 打造在线家庭影院 2018年11月29日 08:46:59 清如許 阅读数:1528 我喜欢看电影,尤其是好的电影,我会看上三四遍,仔细感受电影带给我的 ...
- Nginx环境搭建与使用
一.背景 之前测试的项目前后端的"路由"(负责把前端发过来的请求转发到相应的后端服务上)要用Nignx来取代原来的tomcat的http server功能,做这个替换的原因是Nig ...
- Django搭建简易博客
Django简易博客,主要实现了以下功能 连接数据库 创建超级用户与后台管理 利用django-admin-bootstrap美化界面 template,view与动态URL 多说评论功能 Markd ...
- Nginx+Django+Uwsgi+php
在FreeBSD结合Nginx和FastCGI简单配置Django和PHP http://blog.chinaunix.net/uid-11131943-id-3031767.html Nginx+ ...
- nginx+ffmpeg搭建rtmp转播rtsp流的flash服务器
本文概要: nginx是非常优秀的开源服务器,用它来做hls或者rtmp流媒体服务器是非常不错的选择.本文介绍了一种简易方法快速搭建rtmp流媒体服务器,也叫rtsp转播,数据源不是读取文件,而是采用 ...
- Linux下php+mysql+nginx编译搭建(一)
之前一直都是一键搭建的webserver,可是一键搭建的环境相对来说都是比較老的.假设要用比較新的环境,特别是正式server,就必须自己手动编译搭建了(下面搭建基于linux centos6.5 3 ...
随机推荐
- 在线安装TIDB集群
在线安装TiDB集群 服务器准备 说明:TiDB8需要能够连接外网,以便下载各类安装包 TiDB4非必须,但最好是有一台,因为后续测试Mysql数据同步或者进行性能比较时,都要用到 TiKV最好是采 ...
- 网络编程 tftp下载文件的编程
一.代码 操作码 功能 1 读请求,即下载 2 写请求,即上传 3 表示数据包,即DATA 4 确认码,即ACK 5 错误 from socket import * import struct s=s ...
- Django之前后端交互使用ajax的方式
1. 在项目中前后端数据相互是一种常态, 前后端交互使用的是ajax请求和form表单的请求两种方式" ajax与form表单的区别在于: form 是整个页面刷新提交的, 但是ajax ...
- 用java语言构建一个网络服务器,实现客户端和服务器之间通信,实现客户端拥有独立线程,互不干扰
服务器: 1.与客户端的交流手段多是I/O流的方式 2.对接的方式是Socket套接字,套接字通过IP地址和端口号来建立连接 3.(曾经十分影响理解的点)服务器发出的输出流的所有信息都会成为客户端的输 ...
- python装饰器补漏
以前写过一篇装饰器文章,觉得少了点东西,今天特来补上,也就是带参数的装饰器,上篇文章写的不严谨 def logger(logs=""): def outer(f): def inn ...
- 2019/1/15 python基础学习
一.列表切片a.快捷方式:spam[:3] ----表示从列表开始到3位置结束:拿到的内容是0,1,2没有3位置上的数字.spam[3:]b.列表的拼接.复制: 拼接:使用 + [1,2,3]+['A ...
- python re模块与正则表达式
首先要先继承re模块: import re re.findall() 方法 # 返回值为列表 \w 表示一个字符,为数字,字母,下滑线之一, \W匹配任意非数字,字母,下划线 print(re.fin ...
- 记账本,C,Github,entity
package entity; public class Category { private int id; private String name; private int recordNumbe ...
- IOC 和DI(转载)
IOC 是什么? Ioc—Inversion of Control,即“控制反转”,不是什么技术,而是一种设计思想.在Java开发中,Ioc意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内 ...
- java简单的文件读写工具类
import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.BufferedRead ...