Django SimpleCMDB WSGI

Posted 孔雀东南飞

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django SimpleCMDB WSGI相关的知识,希望对你有一定的参考价值。

一、WSGI 介绍

(1) 在前面的学习中,我们是通过 python manage.py runserver 0.0.0.0:8000 来启动并访问开发服务器的;
(2) 但在实际中我们是通过直接访问 Apache 或 nginx 来访问开发服务器,这就需要用到 WSGI(Web Server Gateway Interface,Web服务器网关接口);
(3) WSGI 是作为 Web Server(Web服务器) 与 Web Application(Web应用程序) 之间的一种接口,实现 Web Server 与 Web Application 之间的交互;
(4) 这里的 Web Server 可以是 Apache 或 Nginx ,而 Web Application 也就是我们的 Django 项目(SimpleCMDB),通过 WSGI ,我们直接访问 Apache 或 Nginx 就能直接访问到我们的项目。

 

二、SimpleCMDB 与 Apache 结合

[root@localhost ~]$ yum install -y mod_wsgi    # 先给 Apache 安装 WSGI 模块,Apache 是基于模块工作的
[root@localhost ~]$ cat /etc/httpd/conf.d/simplecmdb.conf    # Apache配置如下
<VirtualHost *:80> WSGIDaemonProcess simplecmdb python-path=/opt/SimpleCMDB:/usr/lib/python2.6/site-packages WSGIProcessGroup simplecmdb WSGIScriptAlias / /opt/SimpleCMDB/SimpleCMDB/wsgi.py Alias /static /usr/lib/python2.6/site-packages/django/contrib/admin/static </VirtualHost> <Directory /opt/SimpleCMDB/SimpleCMDB> Order allow,deny Allow from all </Directory> WSGISocketPrefix /var/run/wsgi

//关于WSGI的配置的解释说明,参考:https://modwsgi.readthedocs.io/en/develop/configuration-directives/WSGIDaemonProcess.html
[root@localhost ~]$ /etc/init.d/httpd start    # 启动 Apahce,这样我们就能直接通过 http://your_ip/ 访问 SimpleCMDB 项目了

 

三、SImpleCMDB 与 Nginx 结合

[root@localhost ~]$ pip install gunicorn    # 先给 Nginx 安装 gunicorn 模块,Nginx 是基于模块工作的
[root@localhost ~]$ cat /usr/local/nginx/conf/vhosts/simplecmdb.conf     # Nginx 配置如下
server {
    listen 80;
    server_name www.simplecmdb.com;    # 指定要代理的网站域名
    
    location /static/admin/ {    # Django 后台管理页面配置
        root /usr/lib/python2.6/site-packages/django/contrib/admin/;
        index index.html index.htm index.php;
    }

    location / {                           
        proxy_pass http://localhost:80;    # 指定代理的网站的实际地址
    }
}
[root@localhost ~]$ cd /opt/SimpleCMDB/                                 # 进入项目目录
[root@localhost SimpleCMDB]$ gunicorn SimpleCMDB.wsgi:application -D    # 在后台运行WSGI
[root@localhost ~]$ /usr/local/nginx/sbin/nginx -t    
[root@localhost ~]$ /usr/local/nginx/sbin/nginx -s reload
//重载 Nginx,这样我们就能直接通过 http://your_ip/ 访问 SimpleCMDB 项目了

 

 

 

 

 

 

    

以上是关于Django SimpleCMDB WSGI的主要内容,如果未能解决你的问题,请参考以下文章

django----创建simplecmdb项目

Django SimpleCMDB 使用序列化

Django 1.7 在 mod-wsgi 上的代码更改监控出现故障

在没有 root 的情况下重新加载 django wsgi 脚本

Nginx / Apache / WSGI / Django - 意外引发 500 错误(Nginx 上为 499)

如何在 Django 中为 WhiteNoise 5.1.0 设置 wsgi.py 文件?