Django Nginx+uwsgi 安装配置
在前面的章节中我们使用 python manage.py runserver 来运行服务器。这只适用测试环境中使用。
正式发布的服务,我们需要一个可以稳定而持续的服务器,比如apache, Nginx, lighttpd等,本文将以 Nginx 为例。
你也可以直接参考:Python uwsgi 安装配置
安装基础开发包
Centos 下安装步骤如下:
1 | yum groupinstall "Development tools" |
CentOS 自带 Python 2.4.3,但我们可以再安装Python2.7.5:
1 | cd ~ |
安装Python包管理
easy_install 包 https://pypi.python.org/pypi/distribute
安装步骤:
1 | cd ~ |
pip 包: https://pypi.python.org/pypi/pip
安装 pip 的好处是可以用 pip list、pip uninstall 管理 Python 包, easy_install 没有这个功能,只有 uninstall。
安装 uwsgi
uwsgi:https://pypi.python.org/pypi/uWSGI
uwsgi 参数详解:http://uwsgi-docs.readthedocs.org/en/latest/Options.html
1 | pip install uwsgi |
测试 uwsgi 是否正常:
新建 test.py 文件,内容如下:
1 | def application(env, start_response): |
然后在终端运行:
1 | uwsgi --http :8001 --wsgi-file test.py |
在浏览器内输入:http://127.0.0.1:8001,查看是否有"Hello World”输出,若没有输出,请检查你的安装过程。
安装 Django
1 | pip install django |
测试 django 是否正常,运行:
1 | django-admin.py startproject demosite |
在浏览器内输入:http://127.0.0.1:8002,检查django是否运行正常。
安装 Nginx
安装命令如下:
1 | cd ~ |
你可以阅读 Nginx 安装配置 了解更多内容。
uwsgi 配置
uwsgi支持ini、xml等多种配置方式,本文以 ini 为例, 在/etc/目录下新建uwsgi9090.ini,添加如下配置:
1 | [uwsgi] |
Nginx 配置
找到nginx的安装目录(如:/usr/local/nginx/),打开conf/nginx.conf文件,修改server配置:
1 | server { |
你可以阅读 Nginx 安装配置 了解更多内容。
设置完成后,在终端运行:
1 | uwsgi --ini /etc/uwsgi9090.ini & |
在浏览器输入:http://127.0.0.1,你就可以看到 django 的 “It work” 了。
2 篇笔记 写笔记
安装 uwsgi 如果失败,有可能是缺少Python的头文件和静态库,需要安装开发版本:
For apt (Ubuntu, Debian…):
1
2sudo apt-get install python-dev # for python2.x installs
sudo apt-get install python3-dev # for python3.x installs
1 |
|
sudo yum install python-devel
1
2
For dnf (Fedora...):
sudo dnf install python2-devel # for python2.x installs
sudo dnf install python3-devel # for python3.x installs
1
2
For zypper (openSUSE...):
sudo zypper in python-devel # for python2.x installs
sudo zypper in python3-devel # for python3.x installs
1
2
2. 非多站模式时 **vhost = true** 和 **no-site = true** 需要注释掉,否则后续 nginx 配置文件中设置的入口文件则不生效,服务器会回应 **Internal Server error**:
1 | [uwsgi] |
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 jaytp@qq.com