一 前记

  最近在使用Django倒腾属于自己的网站,由于以前没有接触过多少这类信息,所以,很多东西都是从零开始学习的。在参考网上的资料时候,发现很多对这方面记录的,很多人都写的不是很清楚,也许我这个新手的原因。反正自己是看不懂的。对着很多操作流程来进行建站,尝试了很多次才算是成功。本着前人栽树,后人乘凉的原则。鄙人就把自己的操作流程记录下来了。希望对第一次安装并使用Nginx的人有价值。写的不好的地方也多请高手指点。

二 为什么要用Nginx?

  官方答案:Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
  通俗理解:Nginx就是让你的IP:端口的组合变成一个方便你搜索的网址:比如,百度的网址:www.baidu.com Nginx里面的就是对应的:23.123.12.34:8001(随便一个IP地址做例子),并且它还有别的价值,比如,不容易短线,网站访问速度快,并发能力强嘛。
  在使用Django建站的时候,一般使用:python manage.py 0.0.0.0:8001 这样是可以起动网页了,输入:http://127.0.0.1:8001 你就会发现自己的网页已经成功的显示了。接下来,你会发现有两个问题:一个是只要执行:python manage.py 0.0.0.0:8001的终端一旦关掉或者这个进程被杀死,后台马上挂掉了。还有一个就是自己的网站怎么后面有一个端口号呢?为什么很多商用的网站没有呢?百度有吗?谷歌有吗?到底是怎么做到的呢?
这个就是Ningx + uwsgi做的事情了。

三 Nginx安装和配置

  一般有几种安装方式:
命令行安装:本人的是mac。安装的方式就是:brew install nginx
  还有一个就是所有系统都通用的源码安装方式:
去网站:http://nginx.org/download/下载所需的版本,一般是最新的。使用命令安装:

tar zxf nginx-1.0.8.tar.gz
cd nginx-1.0.8
./configure ./configure --add-module=path/substitutions4nginx-read-only //注意这里的path是相对应的真实路径
make
make install

  接下来就是配置nginx了,这里有很多配置方法,估计要把每项都弄清楚需要花一些时间,本人就只是做简单的安装并测试,所以,配置就比较简单了。主要注意的就是server_name 和uswgi_params 本人的server内容如下:

    server {
listen 80;
server_name localhost; //localhost or your web address #charset koi8-r; #access_log logs/host.access.log main; location / {
root html;
index index.html index.htm;
uwsgi_pass 127.0.0.1:8008; // ip addr and port is your open ip or loopback 127.0.0.1
include uwsgi_params;
} #error_page 404 /404.html; # redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}

  假如你找不到nginx.conf在哪儿,就直接使用locate nginx.conf查看一下吧。我的路径是:/usr/local/etc/nginx/nginx.conf

四 uwsig使用配置文件启动

  uwsgi在上篇文章中已经有介绍了,这里就不多做分析了,这里就直接使用吧。在和manage.py同级目录下创建:helloapp.wsgi 并填入下面内容,切记,文件的路径要改成自己工程的。

[uwsgi]
# 项目
chdir=/Users/Documents/igihub/django/django_example/helloapp/
# 指定项目的application
module=helloapp.wsgi:application
# 指定sock的文件路径
socket=/Users/Documents/igihub/django/django_example/helloapp/script/uwsgi.sock
# 进程个数
workers=5
pidfile=/Users/Documents/igihub/django/django_example/helloapp/script/uwsgi.pid
# 指定IP端口
socket=127.0.0.1:8008
# 指定静态文件
#static-map=/static=/opt/proj/teacher/static
# 启动uwsgi的用户名和用户组
uid=root
gid=root
# 启用主进程
master=true
# 自动移除unix Socket和pid文件当服务停止的时候
vacuum=true
# 序列化接受的内容,如果可能的话
thunder-lock=true
# 启用线程
enable-threads=true
# 设置自中断时间
harakiri=30
# 设置缓冲
post-buffering=4096
# 设置日志目录
daemonize=/Users/Documents/igihub/django/django_example/helloapp/script/uwsgi.log

五 启动加载

  一切都准备就绪了。这之后,直接运行:
sudo nginx && uwsgi --int uwsgi.wsgi 即可跑起来了。
  在网页中输入:
http://localhost 即可看到你需要显示的网页内容,这时你会发现端口号已经不存在了,直接kill掉wsgi发现也没有那么容易了。这个就是nginx + uwsgi的神奇价值所在。
  这个虽然只是一个简单的应用,但是对于新手,还是会有很多是搞不定,多上网搜索,多请教问题。计算机是一门实践性很强的学科,实践的多了,你就能倒腾出来东西了。

参考文档:

https://www.cnblogs.com/MacoLee/p/5889122.html

Django+Nginx概念安装和使用–使用Django建立你的第一个网站的更多相关文章

  1. 吴裕雄--天生自然Django框架开发笔记:Django Nginx+uwsgi 安装配置

    Django Nginx+uwsgi 安装配置 使用 python manage.py runserver 来运行服务器.这只适用测试环境中使用. 正式发布的服务,需要一个可以稳定而持续的服务器,比如 ...

  2. Django Nginx+uwsgi 安装配置

    使用 python manage.py runserver 来运行服务器.这只适用测试环境中使用. 正式发布的服务,我们需要一个可以稳定而持续的服务器,比如apache, Nginx, lighttp ...

  3. linux下Django Nginx+uwsgi 安装配置

    原文链接 在前面的章节中我们使用 python manage.py runserver 来运行服务器.这只适用测试环境中使用. 正式发布的服务,我们需要一个可以稳定而持续的服务器,比如apache, ...

  4. Django跳转到不同的页面的方法和实例–使用Django建立你的第一个网站

    1 前记 这次记录的这些东西,主要是自己在搭建个人网站的时候遇到的一些问题记录,不算严格意义上的教程和使用说明.按照目前自己的web水平,去写这方面的教程无疑是误人子弟.因为自己虽然做程序员很多年,但 ...

  5. python Django Nginx+ uWSGI 安装配置

    环境: CentOS7.python-3.5.3.Nignx 1.10.3 .Django 1.10.6.uWSGI 2.0.14 django项目目录:/var/webRoot/p1 项目结构: 基 ...

  6. uwsgi基本介绍安装和测试--使用Django建立你的第一个网站

    一 基本介绍 对像我这样不是专业做网络的人来说,uuwsgi是一个陌生的东西.它是谁?它可以做什么?谁会用到它?其实,在不知道一个东西是什么的情况下,能够快速的了解并使用它,是一门很有艺术性的事情.最 ...

  7. 快速入门和使用HTML–使用Django建立你的第一个网站

    一 前记 你每天浏览的网页,通过网络看的新闻,看着淘宝京东的绚丽多彩的界面.是否想过这个问题,它是怎么实现的呢?有没有搜过相关的知识呢?假如没有,假如你是一位对事物好奇的主或者是做计算机相关东西的人. ...

  8. CentOs Linux 对于Django uwsgi + Nginx 的安装与部署

    Django Nginx+uWSGI 安装配置 链接:

  9. Install Python+Django+Nginx+UWSGI

    一.软件环境: CentOS6.6_64bit 需要用到的软件: [root@django tools]# ll 总用量 33336 -rw-r--r-- 1 root root 7497785 3月 ...

随机推荐

  1. luogu1330_封锁阳光大学 图的遍历

    传送门 解释:(转自洛谷题解) 首先,肯定要明确一点,那就是这个图是不一定联通的.于是,我们就可以将整张图切分成许多分开的连同子图来处理.然而最重要的事情是:如何处理一个连通图? 乍看下去,似乎无从下 ...

  2. spark学习(10)-RDD的介绍和常用算子

    RDD(弹性分布式数据集,里面并不存储真正要计算的数据,你对RDD的操作,他会在Driver端转换成Task,下发到Executor计算分散在多台集群上的数据) RDD是一个代理,你对代理进行操作,他 ...

  3. java并发编程(八)----(JUC)CountDownLatch

    CountDownLatch 是一个非常实用的多线程控制工具类." Count Down " 在英文中意为倒计数, Latch 为门问的意思.如果翻译成为倒计数门阀, 我想大家都会 ...

  4. java并发编程(十四)----(JUC原子类)对象的属性修改类型介绍

    今天我们介绍原子类的最后一个类型--对象的属性修改类型: AtomicIntegerFieldUpdater,AtomicLongFieldUpdater,AtomicReferenceFieldUp ...

  5. 基于 WPF 模块化架构下的本地化设计实践

    背景描述 最近接到一个需求,就是要求我们的 WPF 客户端具备本地化功能,实现中英文多语言界面.刚开始接到这个需求,其实我内心是拒绝的的,但是没办法,需求是永无止境的.所以只能想办法解决这个问题. 首 ...

  6. 解决微信二次分享失败--后面被加上from=singlemessage&isappinstalled=0的解决方案

    首次分享成功,点开后再次分享或第三次分享就失败了 1.检查你分享的链接,看是否多了两个参数,微信分享会根据分享的不同,为原始链接拼接: 朋友圈   from=timeline&isappins ...

  7. 记一次JPA遇到的奇葩错误——本地sql不识别表名的别名

    记一次JPA遇到的奇葩错误——本地sql不识别表名的别名 报错:Unknown column 'our' in 'field list' 起因:需要本地sql查询后,分页返回自定义对象.报错信息如下: ...

  8. ABP 配置全局数据过滤器

    ABP官方数据过滤的地址:https://aspnetboilerplate.com/Pages/Documents/Data-Filters 中文可以看这个:https://aspnetboiler ...

  9. Arduino 常用函数参考文档

    封装好的API,使得程序中的语句更容易被理解,我们不用理会单片机中繁杂的寄存器配置,就能直观的控制Arduino,增强程序可读性的同时,也提高了开发效率. 本篇主要介绍: 一,项目结构 1.setup ...

  10. idea中pom如何加载jar包依赖

    1.需求分析    在特定需求的情况下,idea需要加载jar包,那么如何在idea中正确的配置jar依赖呢?今天博主就这个问题给大伙讲解下,希望对大伙有所帮助 2.实现方案①在工程src目录下新建l ...