Nginx+uWSGI

简介: 【8月更文挑战第22天】

Django Nginx+uWSGI 安装配置指南

在Django开发中,python manage.py runserver 命令仅适用于开发和测试环境。对于生产环境,我们需要一个更为稳定和高效的服务器解决方案。Nginx和uWSGI的组合是发布Django应用的常见选择。以下是如何在Linux系统上安装和配置Nginx与uWSGI的详细步骤。

安装基础开发包

首先,需要安装Linux系统的基础开发包和Python环境。

对于CentOS系统,可以通过以下命令安装开发工具和依赖库:

yum groupinstall "Development tools"
yum install zlib-devel bzip2-devel pcre-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel

接着,安装Python 2.7.5(如果系统未自带所需版本):

cd ~
wget http://python.org/ftp/python/2.7.5/Python-2.7.5.tar.bz2
tar xvf Python-2.7.5.tar.bz2
cd Python-2.7.5
./configure --prefix=/usr/local
make && make altinstall

安装Python包管理工具

使用以下命令安装easy_installpip

wget https://pypi.python.org/packages/source/d/distribute/distribute-0.6.49.tar.gz
tar xf distribute-0.6.49.tar.gz
cd distribute-0.6.49
python2.7 setup.py install
easy_install --version

pip install pip

安装uWSGI

uWSGI是一个用于部署Python应用的服务器。安装uWSGI:

pip install uwsgi
uwsgi --version

创建一个简单的test.py文件来测试uWSGI是否安装成功:

def application(env, start_response):
    start_response('200 OK', [('Content-Type','text/html')])
    return "Hello World"

运行uWSGI并访问http://127.0.0.1:8001来检查输出。

安装Django

使用pip安装Django:

pip install django

创建一个测试Django项目并运行服务器:

django-admin.py startproject demosite
cd demosite
python2.7 manage.py runserver 0.0.0.0:8002

安装Nginx

Nginx是一个高性能的HTTP服务器和反向代理服务器。安装Nginx:

wget http://nginx.org/download/nginx-1.5.6.tar.gz
tar xf nginx-1.5.6.tar.gz
cd nginx-1.5.6
./configure --prefix=/usr/local/nginx-1.5.6 \
--with-http_stub_status_module \
--with-http_gzip_static_module
make && make install

uWSGI配置

创建uWSGI配置文件/etc/uwsgi9090.ini

[uwsgi]
socket = 127.0.0.1:9090
master = true
vhost = true
no-site = true
workers = 2
reload-mercy = 10
vacuum = true
max-requests = 1000
limit-as = 512
buffer-size = 30000
pidfile = /var/run/uwsgi9090.pid
daemonize = /website/uwsgi9090.log

Nginx配置

配置Nginx以代理uWSGI服务器。编辑/usr/local/nginx/conf/nginx.conf文件:

server {
   
    listen 80;
    server_name localhost;

    location / {
   
        include uwsgi_params;
        uwsgi_pass 127.0.0.1:9090;
        uwsgi_param UWSGI_SCRIPT demosite.wsgi;
        uwsgi_param UWSGI_CHDIR /demosite;
        index index.html index.htm;
        client_max_body_size 35m;
    }
}

启动服务

启动uWSGI和Nginx服务:

uwsgi --ini /etc/uwsgi9090.ini &
/usr/local/nginx/sbin/nginx
目录
相关文章
|
负载均衡 应用服务中间件 nginx
Django通过Nginx和uWSGI实现负载均衡
Django通过Nginx和uWSGI实现负载均衡
200 0
|
1月前
|
中间件 应用服务中间件 nginx
Nginx+uWSGI+Django原理
Nginx+uWSGI+Django原理
|
2月前
|
监控 应用服务中间件 nginx
nginx+uwsgi+flask
nginx+uwsgi+flask
|
3月前
|
网络协议 Unix 应用服务中间件
Nginx七层(应用层)反向代理:UWSGI代理uwsgi_pass篇
Nginx七层(应用层)反向代理:UWSGI代理uwsgi_pass篇
201 1
|
数据可视化 前端开发 应用服务中间件
flask+nginx+uwsgi部署服务器(详细保姆级教程)
本次项目我利用flask写了接口需要部署到服务器供前端使用,一路走来爬了很多坑,所以这一次做了详细的记录,从零开始教大家将flask项目跑起来
1695 1
flask+nginx+uwsgi部署服务器(详细保姆级教程)
|
11月前
|
小程序 前端开发 应用服务中间件
nginx,uwsgi get方法请求参数过长怎么办
nginx,uwsgi get方法请求参数过长怎么办
111 0
|
负载均衡 应用服务中间件 Linux
CentOS7下python3+Flask+uWSGI+Nginx+Supervisor环境搭建
在生产环境中通常用uwsgi作为Flask的web服务网关,通过nginx反向代理进行负载均衡,通过supervior进行服务进行的管理。这一套搭下来还是有一些坑要踩,本文通过一个简单的Flask web应用记录了CentOS7下python3+Flask+uWSGI+Nginx+Supervisor环境搭建的全过程,以及一些注意事项,以免遗忘。
327 0
|
负载均衡 网络协议 Ubuntu
|
负载均衡 Unix 应用服务中间件
知其所以然:flask + uwsgi不要nginx,应该怎么写配置文件?
知其所以然:flask + uwsgi不要nginx,应该怎么写配置文件?
168 0
|
应用服务中间件 nginx Python
【Django部署】Nginx+uWsgi部署Django项目
最近需要部署一个Django项目但是不能用宝塔面板!呜呜呜 不能懒人式一键部署了 那就学习一下黑框框部署吧
673 0
【Django部署】Nginx+uWsgi部署Django项目