django+nginx+flup

由于之前写的代码总是用的是Django自带的WSGIServer/0.1进行测试的。
但是这个webserver服务器毕竟只是用来进行测试的,它的某些性能方面都
不会特别的完善。并发性也不是很好

所以一般我们要把django项目挂载到网络上去的话,用那个肯定是不行的。
所以我们选用了nginx,当然nginx作为webserver的性能是没话说的了,
但是我们的Django没有直接和别的webserver对话的模块,所以这样的flup
也就应运而生了,flup就是nginx与Django之间的桥梁。

1.nginx:("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,作用和apache的类似。
它可以处理一些静态文件的请求,而对于动态的文件的请求,它可以通过fastcgi方式,来分发请求给不同的动态语言处理。

2.flup:本身是一个使用python写的web服务器软件,它可以接受nginx发来的请求,
执行相应的python代码,将结果返回给nginx。

3.django:基于python的一个web框架,它可以我们做一些基础性的东西,
比如cookie,session管理,模板机制,权限管理等等
 

要使用他们当然是先要安装他们咯

安装python


安装Django


安装flup


安装nginx


接下来就是进行配置咯


在nginx配置文件中加上我们的python程序server:
如:
在本地的nginx的配置文件wxy.conf


server {
    listen 80;
    server_name  wxy.v5data.com;
    access_log    /home/nlog/v5data.log;
    error_log     /var/log/nginx/v5data.err.log;

    location / {
        fastcgi_pass unix:/tmp/v5data.sock;
        include fcgi.conf;
    }

    location /w3c/ {
        alias /home/htdocs/w3c/;
    }

    location = /favicon.ico {
        root /home/htdocs/w3c/favicon/v5data.com/;
    }
}

fcgi.conf:


    fastcgi_pass_header Authorization;
    fastcgi_intercept_errors off;

    fastcgi_param PATH_INFO             $fastcgi_script_name;
    fastcgi_param REQUEST_METHOD        $request_method;
    fastcgi_param QUERY_STRING          $query_string;
    fastcgi_param CONTENT_TYPE          $content_type;
    fastcgi_param CONTENT_LENGTH        $content_length;
    fastcgi_param SERVER_PORT           $server_port;
    fastcgi_param SERVER_PROTOCOL       $server_protocol;
    fastcgi_param SERVER_NAME           $server_name;

    fastcgi_param REQUEST_URI           $request_uri;
    fastcgi_param DOCUMENT_URI          $document_uri;
    fastcgi_param DOCUMENT_ROOT         $document_root;
    fastcgi_param SERVER_ADDR           $server_addr;
    fastcgi_param REMOTE_USER           $remote_user;
    fastcgi_param REMOTE_ADDR           $remote_addr;
    fastcgi_param REMOTE_PORT           $remote_port;
    fastcgi_param SERVER_SOFTWARE       "nginx";
    fastcgi_param GATEWAY_INTERFACE     "CGI/1.1";


最后再把wxy.conf文件添加到nginx的nginx.conf里面即可
include wxy.conf


上面的大部分是这样的了,当然Django项目如何建立,python代码如何写就不用在这里说了吧,呵呵。。。

### DjangoNginx部署教程 在CentOS 7.x上部署Django应用并与Nginx集成是一个常见的生产环境需求。以下是详细的配置过程: #### 一、安装必要的软件包 确保系统已安装Python、pip以及其他依赖项。接着通过`yum`或其他工具安装NginxuWSGI。 ```bash sudo yum install epel-release sudo yum install nginx uwsgi uwsgi-plugin-python3 ``` #### 二、配置Nginx服务 编辑Nginx的站点可用配置文件,通常位于`/etc/nginx/sites-available/`目录下。创建一个新的配置文件(如`myproject.conf`),并添加以下内容[^4]: ```nginx server { listen 80; server_name example.com; # 替换为实际的域名或IP地址 location / { include uwsgi_params; uwsgi_pass 127.0.0.1:8000; # 对应uWSGI监听的socket地址 } location /static/ { alias /path/to/static/files/; # 替换为静态文件的实际路径 } } ``` 完成上述修改后,测试Nginx配置语法是否正确,并重新加载服务[^2]: ```bash sudo nginx -t sudo systemctl reload nginx ``` 如果一切正常,则会显示类似的消息:“syntax is ok”。 #### 三、配置uWSGI 在项目的根目录中创建一个名为`uwsgi.ini`的文件,用于定义uWSGI的行为[^3]。该文件的内容可能类似于下面这样: ```ini [uwsgi] chdir = /root/django-projects/myserver # 更改为您的项目路径 module = myserver.wsgi:application # 根据实际情况调整模块名 master = true processes = 4 threads = 2 socket = 127.0.0.1:8000 vacuum = true py-autoreload = 1 ``` 启动uWSGI服务时可执行以下命令: ```bash uwsgi --ini uwsgi.ini ``` #### 四、处理静态文件 对于Django中的静态资源管理,在开发环境中可以通过内置服务器提供支持;但在生产环境下推荐由Nginx负责托管这些文件。因此需先收集所有应用程序内的静态资产至单一位置[^3]: ```python python manage.py collectstatic ``` 随后更新Nginx配置中的`location /static/ {}`部分指向此集中存储区域。 --- ### 总结 以上步骤涵盖了从基础环境准备到具体参数设定的过程,能够帮助开发者顺利实现基于Linux系统的Django+Nginx架构部署方案[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值