【问题标题】:Deployment Django using Apache and mod_wsgi on Remote Ubuntu Server在远程 Ubuntu 服务器上使用 Apache 和 mod_wsgi 部署 Django
【发布时间】:2016-08-10 08:16:36
【问题描述】:

我正在尝试将我的 Django 项目部署在具有 IP 地址的远程 Ubuntu 服务器上:my.rm.ip.ad。服务器上的项目位于路径/path/to/project。我已经配置了 ports.conf、hosts、wsgi.py(我的 Django 项目的),并在 sites-available 目录下添加了一个名为“mywebsite”的网站,并按如下方式启用它。

但是,当我尝试连接到 my.rm.ip.ad:80 时,出现“连接被拒绝错误”。既然 80 端口看起来是开放的,我想问一下,我哪里错了?

提前致谢。

这是我的 /etc/apache2/ports.conf 文件:

Listen 80

<IfModule ssl_module>
    Listen 443
</IfModule>

<IfModule mod_gnutls.c>
    Listen 443
 </IfModule>

还有我的 /etc/apache2/sites-available/mysite.conf 文件:

<VirtualHost my.rm.ip.ad:80>
ServerAdmin admin@mysite.com
ServerName  my.rm.ip.ad
ServerAlias http://my.rm.ip.ad
<Directory /path/to/project/ >
        Order deny,allow
        Allow from all
</Directory>
WSGIScriptAlias /  /path/to/project/foo/foo/wsgi.py
WSGIDaemonProcess  my.rm.ip.ad user=www-data group=www-data threads=25 python-path=/path/to/project/foo/foo/:/usr
WSGIProcessGroup my.rm.ip.ad
ErrorLog /path/to/project/foo/foo/error.log
</VirtualHost>

我在 /etc/hosts 文件中添加了以下行:

my.rm.ip.ad my.rm.ip.ad

最后,这是我的 Django 项目的 wsgi.py 文件:

import os
import sys

sys.path.append('/path/to/project')

os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

我哪里错了?

再次感谢。

【问题讨论】:

  • 您的服务器错误日志中是否有任何相关内容,您是否在 settings.py 中配置了 ALLOWED_HOSTS?
  • 亲爱的 Georgina,服务器错误日志是空的,是的,我已将 'my.rm.ip.ad' 添加到 ALLOWED_HOSTS。
  • 尝试设置允许的主机 = ['*'],如果这不起作用,我会查看服务器可能正在运行的任何防火墙。
  • 不幸的是,声明没有改变。我现在正在查看防火墙设置。如果它发生变化,我将编辑我的帖子。谢谢
  • 祝你好运!

标签: django apache mod-wsgi ubuntu-server


【解决方案1】:

对于遇到同样问题的人,即使看起来像监听第80端口,我建议询问服务提供商该端口是否对全球开放。

我的端口已关闭。因此,我遇到了这样的问题。

【讨论】:

    猜你喜欢
    • 2015-08-09
    • 1970-01-01
    • 2018-01-10
    • 2012-12-20
    • 2016-08-22
    • 2019-09-04
    • 2020-07-13
    • 2015-02-08
    • 2017-10-21
    相关资源
    最近更新 更多