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 ...
随机推荐
- python 处理 https链接 socket报错 链接https
// socket 链接 https 有问题 得去看看ssl文档 用法 import socketimport ssl def https_test(url): proto = "http& ...
- oracle 创建表,删除表,修改表,查询表
1,获取当前用户下的所有表信息 => SELECT * FROM user_tables 1.1,查询某一张表的字段信息:SELECT * FROM user_tab_columns w ...
- python_07 函数作用域、匿名函数
函数的作用域:无论在哪个地方调用函数,函数运行过程中的作用域只跟定义的时候有关,跟在哪个地方调用无关. name='alex' def foo(): name = 'linhaifeng' def b ...
- Python设计模式 - UML - 类图(Class Diagram)
简介 类图是面向对象分析和设计的核心,用来描述系统各个模块中类与类之间.接口与接口之间.类与接口之间的关系,以及每个类的属性.操作等特性,一般在详细设计过程中实施. 类图本身就是现实世界的抽象,是对系 ...
- H5滑条(input type=range)
input[type=range] { -webkit-appearance: none; width: 230px; border-radius: 10px; /*这个属性设置使填充进度条时的图形为 ...
- 2018 宁夏省赛 F. Moving On
题目链接 https://nanti.jisuanke.com/t/28406 大意是 有n(<=200)个城市,城市间有路(Input给了邻接矩阵) 每个城市有一个危险值,然后是q(2e4) ...
- jq怎么给图片绑定上传文件按钮
html代码 <img src="/img/zhengmian.png" alt="" class="file1"> <i ...
- java【基础】多态
new 接口就会发生很有意思的现象 public class InerClassDemo { public static void main(String[] args) { // TODO Auto ...
- ios 在使用 SDWebimage UIButton setBackgroundimage
解决方法 : 有法为此在 SDWebImage: SDWebImage / SDWebImage / UIButton+WebCache.h 导入此文件在您的类: #import <SDWebI ...
- centos7 安装maven
进入指定目录 cd /usr/local/src/ 下载maven 包 wget http://mirrors.hust.edu.cn/apache/maven/maven-3/3.1.1/bin ...