Django是一个高级的Python Web框架,Django的主要目的是简便、快速的开发数据库驱动的网站。本文介绍了在Ubuntu 14.04上使用uWSGI和nginx部署Django应用程序。
安装nginx, Python工具和uWSGI
1.安装nginx,SQLite Python bindings和管理Python工具所需的系统包:
- sudo apt-get install build-essential nginx python-dev python-pip python-sqlite sqlite
2.安装virtualenv和virtualenvwrapper:
- sudo pip install virtualenv virtualenvwrapper
virtualenv和virtualenvwrapper是创建隔离的Python环境的工具。 它们有助于更好地管理应用程序依赖性,版本和权限。 要使virtualenvwrapper正常工作,请运行以下命令:
- echo "export WORKON_HOME=~/Env" >> ~/.bashrc
- echo "source /usr/local/bin/virtualenvwrapper.sh" >> ~/.bashrc
3.在当前会话中激活virtualenvwrapper:
4.使用pip安装uWSGI:
配置Django应用程序示例
1.确保您在django用户的主目录中并为应用程序创建虚拟环境:
- cd /home/django && mkvirtualenv sample
执行此命令后,您的提示将更改为(sample)django@example.com:~$表示您正在使用sample虚拟环境。 要退出虚拟环境,请输入deactivate。
2.安装Django framework
3.创建新的Django应用程序示例,位于/home/django/sample:
- django-admin.py startproject sample
4.切换到Django应用程序的目录并初始化SQLite数据库:
- cd ~/sample && ./manage.py migrate
5.当使用nginx运行Django时,需要配置Django将所有静态资源放在应用程序的静态文件夹中。 在settings.py中指定其位置:
- echo 'STATIC_ROOT = os.path.join(BASE_DIR, "static/")' >> sample/settings.py
6.运行以下命令将所有静态资源移动到上述目录中:
- ./manage.py collectstatic
7.启动开发服务器以测试示例应用程序:
- ./manage.py runserver 0.0.0.0:8080
请在您的浏览器中访问http://example.com:8080,以确认示例应用程序已正确设置并正常工作。 您应该会看到Django测试页。
配置uWSGI
1.创建目录以存放uWSGI配置
- sudo mkdir -p /etc/uwsgi/sites
2.创建配置文件sample.ini:
/etc/uwsgi/sites/sample.ini:
- [uwsgi]
- project = sample
- base = /home/django
-
- chdir = %(base)/%(project)
- home = %(base)/Env/%(project)
- module = %(project).wsgi:application
-
- master = true
- processes = 2
-
- socket = %(base)/%(project)/%(project).sock
- chmod-socket = 664
- vacuum = true
3.为uWSGI创建Upstart job:
/etc/init/uwsgi.conf:
- description "uWSGI"
- start on runlevel [2345]
- stop on runlevel [06]
- respawn
-
- env UWSGI=/usr/local/bin/uwsgi
- env LOGTO=/var/log/uwsgi.log
-
- exec $UWSGI --master --emperor /etc/uwsgi/sites --die-on-term --uid django --gid www-data --logto $LOGTO
4.启动uwsgi服务
配置Nginx
1.删除默认的nginx站点配置:
- sudo rm /etc/nginx/sites-enabled/default
2.为您的Django应用程序创建一个nginx站点配置文件:
/etc/nginx/sites-available/sample:
- server {
- listen 80;
- server_name example.com;
-
- location = /favicon.ico { access_log off; log_not_found off; }
- location /static/ {
- root /home/django/sample;
- }
-
- location / {
- include uwsgi_params;
- uwsgi_pass unix:/home/django/sample/sample.sock;
- }
- }
3.创建指向nginx sites-enabled目录的符号链接以启用站点配置文件:
- sudo ln -s /etc/nginx/sites-available/sample /etc/nginx/sites-enabled
4.检查nginx配置并重新启动它:
- sudo service nginx configtest && sudo service nginx restart
5.现在,您应该可以通过浏览器输入你的域名或IP地址来访问您的Django应用程序。