nginx+uwsgi+django安装

主要分三块安装
版本 
uwsgi   2.0.14
django  1.9.9
nginx    1.9.4

1:uwsgi安装

安装方式 pip install uwsgi(注意:因为uwsgi需要涉及到解析xml文件,所以需要保证libxml2支持,下载方式 yum -y install libxml*,如果各种镜像下载不下来,考虑填加nameserver),安装之后编写个脚本测试一下,脚本内容如下
脚本名:abc.py
def application(env, start_response):
        start_response('200 OK', [('Content-Type','text/html')])
        return "Hello World"
然后执行命令: uwsgi --http :8001 --wsgi-file abc.py
执行不报错,打开浏览器:http://ip:8001
页面出现  Hello World  字样,表示成功

2:django安装

pip install django
测试django是否正常,运行:
django-admin.py startproject demosite
cd demosite
python2.7 manage.py runserver0.0.0.0:8002
打开浏览器,输入 http://ip:8002
出现

It worked!

字样,表示成功(注意:如果不能访问,可能是因为设置的问题,试着去修改setting.py文件,ALLOWED_HOSTS=['*']或者改成ip,比如ALLOWED_HOSTS=['192.168.1.1',])

uwsgi和django配合使用
编写文件django_wsgi.py
#!/usr/bin/env python
# coding: utf-8

import os
import sys

# 将系统的编码设置为UTF8
reload(sys)
sys.setdefaultencoding('utf8')

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "demosite.settings")

#from django.core.handlers.wsgi import WSGIHandler
#application = WSGIHandler()
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
被注释掉的是老的写法,注释下面的是最新写法,然后执行命令
uwsgi --http :8000 --chdir /data/demosite --module django_wsgi
之后浏览器访问:http://ip:8000/
看到

It worked!

表示组合成功

3:安装nginx

http://nginx.org/en/download.html 下载,我用的是目前的最新版1.9.4,下载之后解压安装(注意:安装之前要确认依赖包都有:
1.gzip 模块需要 zlib 库 ( 下载: http://www.zlib.NET/ )
 2.rewrite 模块需要 pcre 库 ( 下载: http://www.pcre.org/ )
 3.ssl 功能需要 openssl 库 ( 下载: http://www.openssl.org/ ),
如果没有安装c++编译环境,还得安装,通过yum install gcc-c++完成安装)
接下来是编译安装
cd nginx - 1.9 . 4
./ configure -- prefix = /usr/ local / nginx - 1.9 .4 \
-- with - http_stub_status_module \
-- with - http_gzip_static_module

make && make install

之后更改配置文件conf文件下nginx.conf文件,内容如下
server {

        listen   80;
        server_name www.aaa.com;#这个地方可以填写ip
        access_log /home/work/var/test/logs/access.log;
        error_log /home/work/var/test/logs/error.log;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
         include        uwsgi_params;
         uwsgi_pass     127.0.0.1:8077;
        }

        #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;
        }

        location /static/ {
            alias  /home/work/src/sites/testdjango1/testdjango/collectedstatic/;
            index  index.html index.htm;
        }

        location /media/ {
            alias  /home/work/src/sites/testdjango1/testdjango/public/media/;
        }
    }

nginx+uwsgi+django配合使用

新建配置文件django_socket.xml
<uwsgi>
    <socket>:9090</socket>
    <chdir>/data/demosite</chdir>
    <module>django_wsgi</module>
    <processes>4</processes> <!-- 进程数 --> 
    <daemonize>uwsgi.log</daemonize>
</uwsgi>

启动uwsgi服务器
uwsgi -x django_socket.xml

启动nginx服务器
我是杀掉进程,然后重新启动的,在nginx/sbin/nginx

访问服务
打开浏览器输入
http://www.aa.com
如果是ip,则是htpp://ip(注意:这个地方不需要端口号)
如果页面显示

It worked!

表示成功啦!


错误提示,
1)如果报错: connect() failed (111: Connection refused),这种情况一般是服务没有启动
2)如果报错:upstream prematurely closed connection while reading response,则可能是配置文件问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值