启动 Django 项目通常需要 web 服务器与应用服务器的支持。其中, nginx 是最常用的 web 服务器,而 uwsgi 是更加适合于长时间运行的应用服务器之一,两者的配合可以起到更好的效果。本文主要介绍如何使用 nginx 和 uwsgi 在 Linux 上启动 Django 项目。
安装 nginx 和 uwsgi
在 Ubuntu / Debian 上安装 nginx:
sudo apt-get update
sudo apt-get install nginx
在 CentOS / RHEL 上安装 nginx:
sudo yum install nginx
安装 uwsgi:
sudo pip install uwsgi
配置 nginx
首先,在 /etc/nginx/sites-available/
目录下新建一个文件,写入以下内容:
server {
listen 80;
server_name example.com;
location / {
include uwsgi_params;
uwsgi_pass unix:/path/to/your/project/name.sock;
}
}
其中,example.com
替换为你自己的域名,/path/to/your/project/
替换为你的 Django 项目所在的目录。
接着,创建一个软连接:
sudo ln -s /etc/nginx/sites-available/your_site /etc/nginx/sites-enabled/
最后,重新启动 nginx:
sudo service nginx restart
配置 uwsgi
在 Django 项目目录中创建一个名为 uwsgi.ini
的文件,写入以下内容:
[uwsgi]
project = your_project_name
base = /path/to/your/project/
home = /path/to/your/virtualenv/
chdir = %(base)
module = %(project).wsgi:application
master = true
processes = 4
socket = %(base)name.sock
chmod-socket = 666
vacuum = true
其中,your_project_name
替换为你的 Django 项目名称,/path/to/your/project/
替换为你的 Django 项目所在的目录,/path/to/your/virtualenv/
替换为你的虚拟环境所在的目录。
启动uwsgi
在 Django 项目目录中运行以下命令启动 uwsgi:
uwsgi --ini uwsgi.ini
这样,Django 项目就已经启动了。如果需要停止 uwsgi,可以运行以下命令:
uwsgi --stop /path/to/your/project/name.pid
其中,/path/to/your/project/
替换为你的 Django 项目所在的目录。
示例说明
假设你的 Django 项目为 myproject
,放在 /var/www/myproject
目录下,并使用了虚拟环境。在这种情况下,你的 uwsgi.ini
文件应该如下所示:
[uwsgi]
project = myproject
base = /var/www/
home = /var/www/myenv/
chdir = %(base)%(project)
module = %(project).wsgi:application
master = true
processes = 4
socket = %(base)%(project)/name.sock
chmod-socket = 666
vacuum = true
注意,myenv
是虚拟环境的名称,在这里可能需要更改。
在完成 uwsgi 配置后,你的 nginx 配置文件应如下所示:
server {
listen 80;
server_name example.com;
location / {
include uwsgi_params;
uwsgi_pass unix:/var/www/myproject/name.sock;
}
}
最后,使用以下命令启动 uwsgi:
uwsgi --ini /var/www/myproject/uwsgi.ini
这样,你的 Django 项目就已经启动了。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:nginx+uwsgi启动Django项目的详细步骤 - Python技术站