Nginx,uWSGI,Django安装和部署

uwsgi是一个application server container,django是一个框架,只用django+python或只用uwsgi+django也可以运行,但我们要做的是用nginx服务器来管理服务器上的资源访问,安装过程可以参考uwsgi的官方网站,本篇文章主要包含了如下几个配置过程:

  1. 安装和配置nginx
  2. 安装和启用virtualenv
  3. 安装uwsgi和django
  4. 整合配置

1. 安装和配置nginx

nginx的安装和配置大家可以参考我的这篇文章: Nginx,MySQL,PHP-FPM的安装和配置,不同的是我们要在/etc/nginx/sites-available/下新建一个网站的配置文件api.local.cg,然后在/etc/nginx/sites-enable/下建一个指向该文件的链接文件,然后修改api.local.cg,内容改为如下:
server {
        listen 80;

        root /var/www/api.local.cg;
        index index.html index.htm;

        access_log /var/log/nginx/api.local.cg-access;
        error_log /var/log/nginx/api.local.cg-error error;

        server_name api.local.cg;

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

        # redirect server error pages to the static page /50x.html
        #
        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
                root www;
        }

        ## caches
        include /etc/nginx/conf.d/caches.conf;
}

2. 安装和启用virtualenv

安装和使用过程可参考 virutalenv的官网,virtualenv就相当于一个python的虚拟机,它允许你在在一个机子上安装多个python的环境,可以是不同版本,然后每个python环境上可以安装各自的库和插件,相互独立不影响,安装命令为:
pip install virtualenv
然后在一个目录下生成虚拟环境并开启使用
mkdir -p ~/sdk/python
cd ~/sdk/python
virtualenv env
source env/bin/activate
which python
启动后如果which python显示的是你的建立的env下的python则表明成功开启,而且此时命令提示符前会多了一个env标记,表示你处于env这个虚拟python环境中,你可以随时使用deactivate来结束这个环境

3. 安装uwsgi和django

apt-get install build-essential
apt-get install python-dev
pip install uwsgi
pip install django
你可以写一个test.py来测试uwsgi的安装是否成功
# test.py
def application(env, start_response):
    start_response('200 OK', [('Content-Type','text/html')])
    return "Hello World"
然后使用如下命令启动后,浏览器访问:127.0.0.1:8000,可以看到返回的hello world
uwsgi --http :8000 --wsgi-file test.py

4. 整合配置

首先,用django生成你网站的基本文件,我们在nginx上指定的文件夹为/var/www/api.local.cg,我们可以做如下操作:
cd /var/www/api.local.cg
django-admin.py startproject www
mv www /var/www/api.local.cg
在api.local.cg项目下建立一个xml配置文件django_socket.xml
<uwsgi>
        <socket>:9000</socket>
        <chdir>/var/www/api.cungen.tk</chdir>
        <module>www.wsgi</module>
        <processes>4</processes>
        <daemonize>uwsgi.log</daemonize>
</uwsgi>
指定的内容为uwsgi与nginxsocket连接的端口,与上面nginx处指定的要一致,chdir为项目的路径,module为默认的项目文件中www目录下的wsgi.py,启动uwsgi,重启nginx
uwsgi -x django_socket.xml
sudo service nginx reload

成功开启各项服务后,访问api.local.cg,效果如图所示:


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值