设为首页 收藏本站
查看: 969|回复: 0

[经验分享] Django+uwsgi+nginx配置详解

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-8-6 11:33:11 | 显示全部楼层 |阅读模式
操作系统是ubuntu

更新源
   
apt-get update


安装 Nginx 和 uWSGI
   
apt-get install nginx uwsgi uwsgi-plugin-python



安装 Python 相关环境
   
apt-get install python-dev python-virtualenv python-pip

这里如果安装不成功,可以分开安装,试过一次,分开安装才成功,原因目前以我的水平还发现不了,很遗憾。


安装 MySQL
   
apt-get install mysql-server mysql-client libmysqld-dev



安装 MySQL 的过程中需要输入密码



安装 PHP
   
apt-get install php5-cli php5-cgi php5-fpm php5-mcrypt php5-mysql




配置 Django 及多站点支持


这里假设我的网站目录为 /www ,每个用户有自己一个独立的文件夹(这里使用两个用户名作为示例,分别为 test1 和 test2 )


前面的操作步骤为简单起见,只新建一个站点,文件夹名称为 test1


建立目录

   
mkdir /www
mkdir /www/test1
mkdir /www/test1/media
mkdir /www/test1/static

这里建立的 media 和 static 目录分别用来存放该 Django 项目的 media 和 static 文件。


用 virtualenv 创建虚拟环境并新建测试项目

   
cd /www/test1
virtualenv env
source env/bin/activate
pip install Django
django-admin.py startproject django_test

这里在 /www/test1/env 目录下新建了一个虚拟环境并激活,安装了 Django 并新建了一个项目,名称为 django_test 。

   
注:
创建并进入环境:mkvirtualenv env1
退出环境:deactivate
进入已存在的环境或者切换环境:workon env1或者env2
删除环境: rmvirtualenv env1




配置 Nginx


在 Nginx 的 sites-available 下创建一个新的配置文件

   
server {
    listen  80;
    server_name test1.yourdomain.com;
    access_log /var/log/nginx/test1.access.log;
    error_log /var/log/nginx/test1.error.log;
    location / {
        uwsgi_pass  unix:///tmp/test1.sock;
        include     uwsgi_params;
    }
    location /media/  {
        alias /www/test1/media/;
    }
    location  /static/ {
        alias /www/test1/static/;
    }
}

接下来将 sites-available 文件夹中刚才添加的文件 ln 到 sites-enabled 文件夹中
1
   
ln -s /etc/nginx/sites-available/test1 /etc/nginx/sites-enabled/

配置 uWSGI


接下来是配置 uWSGI,同样在 uWSGI 的目录下创建一个新的配置文件
   
vim /etc/uwsgi/apps-available/test1.ini

文件内容如下

[uwsgi]
vhost = true
plugins = python
socket = /tmp/test1.sock
master = true
enable-threads = true
processes = 4
wsgi-file = /www/test1/django_test/django_test/wsgi.py
virtualenv = /www/test1/env
chdir = /www/test1/django_test
touch-reload = /www/test1/django_test/reload

注意:文件内容中的 django_test 为刚才创建的 Django 的项目名称

然后将 apps-available 中的配置文件 ln 到 apps-enabled 文件夹中
   
ln -s /etc/uwsgi/apps-available/test1.ini /etc/uwsgi/apps-enabled/

重启 Nginx 和 uWSGI

service uwsgi restart
service nginx restart

接下来访问你在上面绑定的 server_name 域名就可以看见 It worked! 的界面了。


注意:每次更新代码后需要执行 service uwsgi restart 修改方能生效,或者通过上面配置的 touch-reload 文件来检测改动更新代码。



DJANGO应用部署


首先进入/www/test1/django_test目录,然后创建django app。

cd /www/test1/django_test
django-admin.py startapp appname

这样在django_test目录下就会有一个appname目录。

就可以编辑里面的views.py文件。同时编辑一下/django_test下的urls.py文件,然后用自己定义的URL和视图方法,就可以正常访问自己的应用了。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-94770-1-1.html 上篇帖子: ​nginx 进行外网地址屏蔽 下篇帖子: Nginx Proxy timeout排错
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表