nginx django uwsgi搭建网站

安装与配置:
ngin和python 用的是现成安装包(OpenBSD5.2)
1.ngix
$apt-get install nginx

2.python
$ linux自带 
3.Django
安装成功,新建django项目(最好不要在网站根目录htdocs下新建项目,不然别人会查看到你的源代码)
$ cd /var/www/
/var/www$ sudo django-admin.py startproject mysite
此时会生成一个新的文件夹,其结构如下
mysite/
    manage.py
    mysite/
        __init__.py
        settings.py
        urls.py
        wsgi.py
测试实验环境服务
sudo python 3.2  manage.py   runserver
Validating models...

0 errors found
April 22, 2013 - 15:50:53
Django version 1.5, using settings 'mysite.settings'
Development server is running at http://127.0.0.1:8000/ Quit the server with CONTROL-C.
lynx访问地址 http://127.0.0.1:8000/ ,如出现“Welcome to Django”字样,则说明建项目成功。

其它IP地址访问: python3.2 manage.py runserver 0.0.0.0:8000

4.uwsgi
下载当前最新的版本:uwsgi-1.9.6.tar.gz
wget http://projects.unbit.it/downloads/uwsgi-1.9.6.tar.gz
$  tar zxf  uwsgi-1.9.6.tar.gz
cd uwsgi-1.9.6

uwsgi-1.9.6$ python3.2 uwsgiconfig.py --build

也可以用pip install uwsgi来安装

安装过程发现问题,需要安装依赖库  apt-get install python-dev


安装完成后会在当前目录生成uwsgi 二进制文件,可手动把它复制到/usr/sbin,运行时就不用加绝对路径

uwsgi-1.9.6$ sudo cp uwsgi /usr/sbin/uwsgi


发现问题:

!!! no internal routing support, rebuild with pcre support !!!

参考http://cache.baiducontent.com/c?m=9d78d513d98404ee0db6837e7c5497374e43801268848e5428c0d408cd6b01070124f4ba543f0d4595962d3e5ceb1e1cbeae6b37200357e6c69795099aecd36e74d57b756d1c854516d818a8cd5b659670d701b7f90ee7ccb777d2fb89c4df221691155f6d8086c90b4043dd6f865576a1e4c40853&p=91759a46d7c805b40fabe62d021491&newp=9372c54ad5c24ab504b4ce2d02149c231610db2151d6d11e6588ca12&user=baidu&fm=sc&query=uwsgi+prce+false&qid=a7850f5a000121e1&p1=1

安装依赖库后重新编译:apt-get install libpcre3 libpcre3-dev
编译成功后看到   pcre = True
安装   apt-get install   uwsgi-plugin-python

注意这个uwsgi-plugin-python是必不可少了,否则uwsgi的log日志会提示— unavailable modifier requested: 0 

5.关联django到nginx

服务器已经在跑PHP站点,现在新生成一个虚拟服务器
sudo vi /etc/nginx/nginx.conf
加入以下内容
    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    server {
        listen       8000;
        #server_name  somename  alias  another.alias;

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

完成后重启下nginx服务
sudo /etc/rc.d/nginx restart

6.配置并运行一个简单的python页面
cd /var/www/mysite
/var/www/mysite$  sudo vi demo.py
输入如下代码:
import  os
import  django.core.handlers.wsgi
os.environ['DJANGO_SETTINGS_MODULE']='mysite.settings'
application=django.core.handlers.wsgi.WSGIHandler()

/var/www/mysite$  uwsgi -s 127.0.0.1:9090 -w demo 

如安装了libxml2,也可用如下方法处理:
在app目录创建个django.xml文件
/var/www/mysite$  sudo  vi  django.xm l
内容如下:
<uwsgi>
 <socket>127.0.0.1:9090</socket>
<processes>2</processes>
 <chdir>/var/www/erp/erp</chdir>
 <pythonpath>..</pythonpath>
 <env>DJANGO_SETTINGS_MODULE=mysite.settings</env>
 <module>django.core.handlers.wsgi:WSGIHandler()</module>
</uwsgi>


启动方式:
/var/www/mysite$  uwsgi -x django.xml 

另一种配置方式,用于没有安装 libxml2
ini配置文件
/var/www/mysite$  sudo  vi  django.ini
[uwsgi]
socket = 127.0.0.1:9090
processes = 2
chdir = /var/www/mysite/mysite/
pythonpath = ..
env = DJANGO_SETTINGS_MODULE=mysite.settings
module = django.core.handlers.wsgi:WSGIHandler()

启动方式:
/var/www/mysite$  uwsgi django.ini  

服务成功启动后访问 http://127.0.0.1:8000,如能看到欢迎信息,就说明运行环境配置好了。更多的设置可以看下The_Django_Book
千里之行,始于足下。慢慢设计你的website吧...

参考文件:

1.Django
https://docs.djangoproject.com/en/1.5/intro/tutorial01/
2.uwsgi
http://uwsgi-docs.readthedocs.org/en/latest/

你可能感兴趣的:(nginx django uwsgi搭建网站)