`
ezerg
  • 浏览: 273435 次
  • 性别: Icon_minigender_1
  • 来自: 石家庄
社区版块
存档分类
最新评论

CentOS 4.8 配置 nginx 和 fastcgi 运行 django 应用(下)

阅读更多

四、安装 flup 支持 FastCGI
nginx 默认已经整合了mod_fastcgi,所以我们只需要安装 flup
# tar zxvf flup-1.0.2.tar.gz
复制文件到 flup 目录
# cp flup-1.0.2-py2.5.egg flup-1.0.2/
# cd flup-1.0.2
# python setup.py install

打开 nginx 配置文件 conf/nginx.conf 修改为:
……
        location / {
            fastcgi_pass unix:/opt/mysite/mysite.sock; // 只能在 linux 或 unix 使用
  fastcgi_pass 127.0.0.1:8501; // 通用,包括 windows 也可以使用
            include fastcgi_params; // 注释文件中的SCRIPT_NAME
        }
……

重启启动 nginx
# /usr/local/nginx/sbin/nginx -s reload
运行 FastCGI,在 /opt/mysite 项目下执行
# python manage.py runfcgi method=threaded host=127.0.0.1 port=8501

在系统中查看 python 进程
# ps -ef | grep python
root     22976     1  4 21:47         00:00:00 python manage.py runfcgi host=127.0.0.1 port=8501
root     22977 22976  0 21:47         00:00:00 python manage.py runfcgi host=127.0.0.1 port=8501
root     22978 22976  0 21:47         00:00:00 python manage.py runfcgi host=127.0.0.1 port=8501
root     22979 22976  0 21:47         00:00:00 python manage.py runfcgi host=127.0.0.1 port=8501
root     22980 22976  0 21:47         00:00:00 python manage.py runfcgi host=127.0.0.1 port=8501
root     22981 22976  0 21:47         00:00:00 python manage.py runfcgi host=127.0.0.1 port=8501

以上说明启动成功,再通过浏览器访问 nginx 即可出现 django 的主界面。

补充:也可以利用负载均衡的方式配置,修改 nginx.conf 文件,关键几点如下:
worker_processes 2;#开2个nginx进程,在任务管理器可以看到这2个子进程和一个nginx主进程,一般按CPU数配置
events {
    worker_connections 64;#每个进程链接队列长度,可按实际设置
}
http {
    ... # 省略其它配置
    # upstream 段要放在 http 段中
    # 和后端的2个 fastcgi 服务通讯,weight是权重
    upstream fastcgi {
        server 127.0.0.1:8051 weight=1;
        server 127.0.0.1:8052 weight=1;
    }
    server {
        listen 80;
        server_name localhost;
        ...# 省略其它配置
        location / {
            # 指定 fastcgi 的主机和端口,这里的 fastcgi 指的是上面的upstream
            fastcgi_pass fastcgi;
            fastcgi_index index;
            fastcgi_param SCRIPT_FILENAME /script$fastcgi_script_name;
            include fastcgi_params;
        }
        ...# 省略其它配置
    }
    ...# 省略其它内容
}

运行2个fastcgi服务,开 2 个命令窗口,在 /opt/mysite 目录下运行:
# python manage.py runfcgi host=127.0.0.1 port=8501 method=threaded daemonize=false
# python manage.py runfcgi host=127.0.0.1 port=8502 method=threaded daemonize=false

开 2个 fastcgi 的命令窗口,终止其中一个访问看看,其实没有任何影响。再把运行的停止,停止的启动看看,还是能访问。若2个都终止,发现不能访问。
在 nginx 的集群配置中,nginx 使用最简单的平均分配规则给集群中的每个节点分配请求。一旦某个节点失效时,或者重新起效时,nginx 都会非常及时的处理状态的变化,以保证不会影响到用户的访问。


五、安装 uWSGI 代替 FastCGI
uwsgi 是一个用 c 语言开发的一个 wsgi 服务器,旨在提供专业的 Python web 应用发布和开发,网上测评性能高于 FastCGI
官方网站:http://projects.unbit.it/uwsgi/
下载最新的版本,编译安装
# tar zxvf uwsgi-0.9.6.8.tar.gz
# cd uwsgi-0.9.6.8
# make
将编译的二进制文件复制到系统路径
# cp uwsgi /usr/bin

修改 nginx 配置文件:
……
       location / {
            include uwsgi_params;
            uwsgi_pass 0.0.0.0:9000;
        }
……
修改完成后,重新启动 nginx

与 fastcgi 不同的是它需要一个启动文件,位置 /opt/uwsgi/mysite.py
#!/usr/bin/env python
#encoding=utf-8
import os,sys
import django.core.handlers.wsgi

os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'

path = '/opt'
if path not in sys.path:
    sys.path.append(path)
print sys.path

application = django.core.handlers.wsgi.WSGIHandler()

启动 uwsgi ,注意 mysite 不要扩展名 .py
# uwsgi -s :9000 -w /opt/uwsgi/mysite

其它启动参数:
并发4个线程
uwsgi -s :9000 -w myapp -p 4
主控制线程+4个线程
uwsgi -s :9000 -w myapp -M -p 4
执行超过30秒的client直接放弃
uwsgi -s :9000 -w myapp -M -p 4 -t 30
限制内存空间128M
uwsgi -s :9000 -w myapp -M -p 4 -t 30 --limit-as 128
服务超过10000个req自动respawn
uwsgi -s :9000 -w myapp -M -p 4 -t 30 --limit-as 128 -R 10000
后台运行等
uwsgi -s :9000 -w myapp -M -p 4 -t 30 --limit-as 128 -R 10000 -d uwsgi.log

0
1
分享到:
评论

相关推荐

    CentOS+nginx+fastCGI+mysql配置文档

    在本配置文档中,我们将详细讨论如何在 CentOS 系统上搭建一个基于 Nginx、FastCGI 和 MySQL 的服务器环境。这个配置过程涉及到多个步骤,包括安装必要的软件包、配置 Nginx 以及整合 PHP 和 MySQL。 首先,我们...

    sysstat-CentOS 4.8

    sysstat-CentOS 4.8

    centos7配置nginx虚拟主机

    centos7配置nginx虚拟主机

    centos的nginx+php的fastcgi模式编译安装

    在IT行业中,构建高效稳定的Web服务器环境是至关重要的。这里我们关注的是在CentOS操作系统上使用Nginx作为Web服务器,并结合PHP的FastCGI模式...在实际操作中,还需要根据具体的系统环境和应用需求进行适当的调整。

    用Django全栈开发——29. 部署之阿里云CentOS+Nginx+uWsgi+Django.html

    阿里云CentOS+Nginx+uWsgi+Django部署Django,《用Django全栈开发》系列文章最后一篇,感兴趣的同学可以查看。

    centOS8安装nginx及nginx配置

    #### 二、CentOS8环境下Nginx的安装与配置 ##### 2.1 安装前准备 在安装Nginx之前,我们需要确保系统已经安装了一些必要的编译工具和库文件,这些工具和库文件对于Nginx的成功编译和运行至关重要。 **Nginx依赖...

    centos+nginx+vue+django部署办法.docx

    这篇文章将指导用户在 CentOS 系统上部署 Nginx 服务器,并使用 Vue 和 Django 框架搭建一个完整的 Web 应用程序。下面是详细的部署步骤: 安装 Nginx 1. 首先,需要安装所需的依赖包,使用以下命令:`yum -y ...

    基于CentOS 7.6 配置Nginx + Tomcat

    本文详细说明了如何在CentOS 7.6环境下配置Nginx作为反向代理服务器,并将请求分发给不同的Tomcat实例。通过这种方式,可以灵活地部署和管理多个Web应用,同时利用Nginx强大的反向代理功能和负载均衡能力,提升Web...

    linux/centos 安装配置nginx 详细文档

    ### Linux/CentOS 下安装与配置 Nginx 的详细指南 #### 一、Nginx 简介 Nginx 是一款轻量级的 Web 服务器/反向代理服务器及电子邮件 (IMAP/POP3) 代理服务器,由 C 语言开发而成,非常适合在 Linux 下运行。它以其...

    Centos+Nginx+UWSGI+Django搭建高性能WEB服务器

    特别是对于动态网站和应用而言,如使用Django框架的Python网站。本文将详细介绍如何在CentOS系统上搭建使用Nginx作为Web服务器、UWSGI作为应用服务器、Django作为后端框架的高性能Web应用。 ### 关键技术点概述 1....

    centos+nginx+mysql+django+uwsgi+python

    本文将详细介绍如何在CentOS系统上安装并配置Django Web框架及其相关组件(Nginx、MySQL、uWSGI等),以及如何关闭CentOS 7的防火墙以确保服务正常运行。 #### 二、基础环境准备 **1. 安装必要的库和工具** 在...

    Centos7的nginx-1.24.0免编译包,直接解压修改配置文件,启动即可

    通过以上步骤,你可以在 CentOS 7 上快速部署并运行 Nginx 1.24.0,同时理解了基本配置文件的结构和管理方法。不过,为了确保服务器的安全和高效运行,还需要根据实际环境进一步定制和优化配置。

    CentOS系统安装配置Nginx+keepalived实现负载均衡

    本文将详细介绍CentOS系统安装配置Nginx+keepalived实现负载均衡的步骤和配置过程。通过本文,读者将了解如何使用Nginx和keepalived来实现高可靠性的负载均衡架构,以提高网站的可用性和性能。 一、体系架构 在...

    CentOS5.5 安装nginx配置http和rtmp服务器

    在本教程中,我们将详细介绍如何在 CentOS5.5 上安装并配置 Nginx 服务器,使其支持 HTTP 和 RTMP 协议,同时启用 HLS(HTTP Live Streaming)功能。Nginx 是一个高性能的 web 服务器,它也常用于反向代理、负载均衡...

    centos7.6离线安装nginx

    在Linux环境中,CentOS 7.6是一个广泛使用的操作系统,而Nginx是一款高性能的Web服务器和反向代理服务器,常用于网站托管和负载均衡。本文将详细介绍如何在CentOS 7.6上进行离线安装Nginx,这对于网络环境不稳定或者...

    centos8 nginx1.20.1 与nginx配置文件

    在IT行业中,Nginx是一款广泛应用的开源HTTP服务器和反向代理服务器,以其高效、稳定和易扩展的特性深受开发者喜爱。在这个主题中,我们主要关注如何在CentOS 8操作系统上安装Nginx 1.20.1版本以及配置Nginx以支持...

    Centos7环境下Nginx版本升级方式及步骤

    本篇文章将详细介绍两种在CentOS7上升级Nginx的方法:YUM upgrade和源码平滑升级,并提供相关的步骤和注意事项。 ### YUM upgrade 升级 YUM upgrade适用于已经使用RPM方式安装Nginx的用户。这种升级方式简单快捷,...

    centos 非root安装nginx

    总结:在非root权限下安装Nginx,需要手动编译和配置所有依赖库,并指定安装路径。此外,由于没有权限设置系统服务,所以需要通过自定义脚本来启动和管理Nginx。这个过程虽然复杂,但在某些场景下,如共享主机环境,...

    CentOS Linux安装配置nginx以及样例

    在本文中,我们将深入探讨如何在CentOS Linux系统上安装和配置Nginx,并提供一些基本的示例。Nginx是一款高性能的Web服务器和反向代理服务器,因其高效的性能和稳定性而广受欢迎。 首先,让我们按照步骤安装Nginx:...

    Centos5.4+Nginx-0.8.50+UWSGI-0.9.6.2+Django-1.2.3搭建高性能WEB服务器

    总结起来,这个配置方案利用了Nginx的静态资源处理能力以及uWSGI的高效Python应用处理能力,为Django应用提供了一个高性能的运行环境。随着Web流量的增长,可以通过增加uWSGI实例或使用负载均衡进一步扩展系统能力。...

Global site tag (gtag.js) - Google Analytics