【问题标题】:How to configure apache2 on ubuntu for django restful services如何在 ubuntu 上为 django restful 服务配置 apache2
【发布时间】:2016-06-21 00:41:56
【问题描述】:

我的 ubuntu 服务器上有 django restful 服务,这些服务在端口 84 上运行。

发送请求时,它来自运行在 80 端口上的 apache2 服务器。

现在假设我的服务器 IP 是“xx.xx.xx.10”,当我使用这个 url http://xx.xx.xx.10/user 调用时,用户是在端口 84 上运行在 django rest 框架上的其余服务。然后请求应该转到我的 django rest 服务通过 apache2 并返回所需的输出。

我尝试在 apache2 中使用以下配置:-

    <VirtualHost *:80>
     WSGIScriptAlias / /myproject/myapp/test/wsgi.py
     <Directory "/myproject/myapp/test/">        
      <Files "wsgi.py">
        Require all granted
      </Files>
     </Directory>
    </VirtualHost>

但这给出了内部错误,说 test.settings 没有退出。

这是配置在apache服务器上不同端口上运行的restful服务的正确方法吗?

【问题讨论】:

  • 您如何以及为什么在端口 84 上部署服务? Django 文档提供了使用 Apache mod wsgi 部署 Django 的说明,您可能会觉得这些说明很有用。

标签: django apache apache2 django-rest-framework


【解决方案1】:

我已经通过使用以下配置解决了这个问题:-

    <VirtualHost *:80>
        ServerName mydomain 
        ServerAlias *.mydomain
        ProxyRequests off
        ProxyPass / http://localhost:84/
        ProxyPassReverse / http://localhost:84/
     </VirtualHost>

【讨论】:

    【解决方案2】:

    您是否指定了 python 路径?如果不这样做,import mysite 将不起作用。

    WSGIPythonPath /path/to/mysite.com
    

    欲了解更多信息,请参阅:Django docs modWSGI

    【讨论】:

    • 我试过这个,仍然给出“内部错误说 test.settings 没有退出”
    • 您能否发布日志或终端输出等,也可以发布任何其他相关的配置文件
    • 我正在代理 manage.py runserver。这对生产有好处吗?
    • 没有。当然不。您应该参考文档并在 Apache 上使用 mod wsgi 进行部署,或者在 Nginx 上使用 gunicorn。您还可以使用 Apache 和 gunicorn。无论哪种方式,您都需要一个多工作者 wsgi 服务器,而 runserver 不会给您。
    • 谢谢pypypy,我会用其中一个。
    猜你喜欢
    • 2011-10-13
    • 2015-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-24
    相关资源
    最近更新 更多