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 ...
随机推荐
- tomcat advanced (RUNNING)
1. 1. tomcat
- c++ :
(1)表示机构内位域的定义(即该变量占几个bit空间) typedef struct _XXX{ unsigned char a:4; unsigned char c; } ; XXX
- mybatis的Selective接口和普通接口的区别
举例说明: updateByPrimaryKeySelective会对字段进行判断再更新(如果为Null就忽略更新),如果你只想更新某一字段,可以用这个方法. updateByPrimaryKey对你 ...
- Apache Struts2高危漏洞(S2-057CVE-2018-11776)
花了两天时间,特此记录 一:背景: 2018年8月22日,Apache Strust2发布最新安全公告,Apache Struts2存在远程代码执行的高危漏洞. 二:漏洞产生原理: 1.需要知道对应跳 ...
- spring boot 日志介绍 以及 logback配置示例
https://www.cnblogs.com/flying607/p/7827460.html 以下是springboot的一个局部依赖关系: 可以看到,java util logging(jul) ...
- Vue开源项目汇总(史上最全)(转)
目录 UI组件 开发框架 实用库 服务端 辅助工具 应用实例 Demo示例 UI组件 element ★13489 - 饿了么出品的Vue2的web UI工具套件 Vux ★8133 - 基于Vue和 ...
- sql server 查看锁表SQL【转】
1.select * from sys.dm_tran_locks或sp_LOCK 查看request_node 字段中为'X'(排他锁)或'IX'(意向排他锁)2.用sp_who2 + pid(进程 ...
- Linux命令:read
在shell中,内建(builtin)命令read,格式如下: read [-ers] [-a aname] [-d delim] [-i text] [-n nchars] [-N nchars] ...
- 为datagrid、treegrid增加右键表头菜单,用于显示或隐藏列,注意:冻结列不在此菜单中
var createGridHeaderContextMenu = function(e, field) { e.preventDefault(); var grid = $(this);/* gri ...
- 【Nodejs】Expressのサンプルについて
全体の実行命令: ①c:\workspace>node XXX.js ②ブラウザに「http://localhost:3000」を入力 ▲サンプル① ・ソース(express_demo.js) ...