四、安装 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
分享到:
相关推荐
在本配置文档中,我们将详细讨论如何在 CentOS 系统上搭建一个基于 Nginx、FastCGI 和 MySQL 的服务器环境。这个配置过程涉及到多个步骤,包括安装必要的软件包、配置 Nginx 以及整合 PHP 和 MySQL。 首先,我们...
sysstat-CentOS 4.8
centos7配置nginx虚拟主机
在IT行业中,构建高效稳定的Web服务器环境是至关重要的。这里我们关注的是在CentOS操作系统上使用Nginx作为Web服务器,并结合PHP的FastCGI模式...在实际操作中,还需要根据具体的系统环境和应用需求进行适当的调整。
阿里云CentOS+Nginx+uWsgi+Django部署Django,《用Django全栈开发》系列文章最后一篇,感兴趣的同学可以查看。
#### 二、CentOS8环境下Nginx的安装与配置 ##### 2.1 安装前准备 在安装Nginx之前,我们需要确保系统已经安装了一些必要的编译工具和库文件,这些工具和库文件对于Nginx的成功编译和运行至关重要。 **Nginx依赖...
这篇文章将指导用户在 CentOS 系统上部署 Nginx 服务器,并使用 Vue 和 Django 框架搭建一个完整的 Web 应用程序。下面是详细的部署步骤: 安装 Nginx 1. 首先,需要安装所需的依赖包,使用以下命令:`yum -y ...
本文详细说明了如何在CentOS 7.6环境下配置Nginx作为反向代理服务器,并将请求分发给不同的Tomcat实例。通过这种方式,可以灵活地部署和管理多个Web应用,同时利用Nginx强大的反向代理功能和负载均衡能力,提升Web...
### Linux/CentOS 下安装与配置 Nginx 的详细指南 #### 一、Nginx 简介 Nginx 是一款轻量级的 Web 服务器/反向代理服务器及电子邮件 (IMAP/POP3) 代理服务器,由 C 语言开发而成,非常适合在 Linux 下运行。它以其...
特别是对于动态网站和应用而言,如使用Django框架的Python网站。本文将详细介绍如何在CentOS系统上搭建使用Nginx作为Web服务器、UWSGI作为应用服务器、Django作为后端框架的高性能Web应用。 ### 关键技术点概述 1....
本文将详细介绍如何在CentOS系统上安装并配置Django Web框架及其相关组件(Nginx、MySQL、uWSGI等),以及如何关闭CentOS 7的防火墙以确保服务正常运行。 #### 二、基础环境准备 **1. 安装必要的库和工具** 在...
通过以上步骤,你可以在 CentOS 7 上快速部署并运行 Nginx 1.24.0,同时理解了基本配置文件的结构和管理方法。不过,为了确保服务器的安全和高效运行,还需要根据实际环境进一步定制和优化配置。
本文将详细介绍CentOS系统安装配置Nginx+keepalived实现负载均衡的步骤和配置过程。通过本文,读者将了解如何使用Nginx和keepalived来实现高可靠性的负载均衡架构,以提高网站的可用性和性能。 一、体系架构 在...
在本教程中,我们将详细介绍如何在 CentOS5.5 上安装并配置 Nginx 服务器,使其支持 HTTP 和 RTMP 协议,同时启用 HLS(HTTP Live Streaming)功能。Nginx 是一个高性能的 web 服务器,它也常用于反向代理、负载均衡...
在Linux环境中,CentOS 7.6是一个广泛使用的操作系统,而Nginx是一款高性能的Web服务器和反向代理服务器,常用于网站托管和负载均衡。本文将详细介绍如何在CentOS 7.6上进行离线安装Nginx,这对于网络环境不稳定或者...
在IT行业中,Nginx是一款广泛应用的开源HTTP服务器和反向代理服务器,以其高效、稳定和易扩展的特性深受开发者喜爱。在这个主题中,我们主要关注如何在CentOS 8操作系统上安装Nginx 1.20.1版本以及配置Nginx以支持...
本篇文章将详细介绍两种在CentOS7上升级Nginx的方法:YUM upgrade和源码平滑升级,并提供相关的步骤和注意事项。 ### YUM upgrade 升级 YUM upgrade适用于已经使用RPM方式安装Nginx的用户。这种升级方式简单快捷,...
总结:在非root权限下安装Nginx,需要手动编译和配置所有依赖库,并指定安装路径。此外,由于没有权限设置系统服务,所以需要通过自定义脚本来启动和管理Nginx。这个过程虽然复杂,但在某些场景下,如共享主机环境,...
在本文中,我们将深入探讨如何在CentOS Linux系统上安装和配置Nginx,并提供一些基本的示例。Nginx是一款高性能的Web服务器和反向代理服务器,因其高效的性能和稳定性而广受欢迎。 首先,让我们按照步骤安装Nginx:...
总结起来,这个配置方案利用了Nginx的静态资源处理能力以及uWSGI的高效Python应用处理能力,为Django应用提供了一个高性能的运行环境。随着Web流量的增长,可以通过增加uWSGI实例或使用负载均衡进一步扩展系统能力。...