当前位置: 首页 > 知识库问答 >
问题:

Apache抛出错误500:从本地主机/内部网络获取时出现内部服务器错误

皮骏
2023-03-14

我有一个使用mod_wsgi安装了apache和django的生产服务器。

django应用程序有一个REST API,它在发送GET请求时提供一些信息。

如果我们使用manage运行django,这在开发服务器上总是很好。屏幕中的py。现在,我们用运行django的apache创建了一个生产服务器,但当从本地主机或同一网络中的其他机器(使用192.168.X.X IP)运行wget时,该API返回错误500。

这是wget的输出:

~$ wget localhost:80/someinfo
--2020-04-02 16:26:59--  http://localhost/someinfo
Resolving localhost (localhost)... 127.0.0.1
Connecting to localhost (localhost)|127.0.0.1|:80... connected.
HTTP request sent, awaiting response... 500 Internal Server Error
2020-04-02 16:26:59 ERROR 500: Internal Server Error.

看起来连接成功了,所以我想这不是apache的问题。错误来自API响应。

apache错误中的错误。日志如下所示:

127.0.0.1 - - [02/Apr/2020:14:24:36 +0000] "GET /someinfo HTTP/1.1" 500 799 "-" "Wget/1.19.4 (linux-gnu)"

问题:500后面的数字是多少?有时是799,有时是803。

但是,如果从外部(即从浏览器)使用服务器的公共IP完成请求,则API工作正常,并且我看到了正确的信息。

我已经检查了django允许的主机,它接受localhost和192.168。十、 另一台机器的X IP。最后我离开了django的设置。py如下:

#ALLOWED_HOSTS = ['localhost', '127.0.0.1', '192.168.1.101']
ALLOWED_HOSTS = ['*']

注意:192.168.1.101是尝试发出GET请求的机器。所有这一切的最终目标是能够从运行在该机器上的python脚本发出GET请求(如果django通过manage.py运行,该脚本已经可以工作)。

我的apache.conf:


    <VirtualHost *:80>

            ServerAdmin webmaster@localhost
            #DocumentRoot /var/www/html

            Alias /static /home/myuser/myproject/django/static_root
        <Directory /home/myuser/myproject/django/static_root>
            Require all granted
        </Directory>

        <Directory /home/myuser/myproject/django/myproject_django>
            <Files wsgi.py>
                Require all granted
            </Files>
        </Directory>

        WSGIDaemonProcess myproject python-home=/home/myuser/env python-path=/home/myuser/myproject/django
        WSGIProcessGroup myproject
        WSGIScriptAlias / /home/myuser/myproject/django/myproject_django/wsgi.py
    </VirtualHost>

我试着通过manage运行django。py和localhost的wget工作得很好。只有当django由apache运行时,问题才会出现。

我也尝试了本文中给出的解决方案,但更改行并不能修复错误。

我对这个错误有些怀疑:

  1. apache如何运行django
  2. 重启apache2服务是否也会重启django?(因此,再次读取settings.py)
  3. 有没有其他django设置文件而不是我正在编辑的
  4. 我怎样才能看到django日志?我现在没有控制台,所以看不到实时打印

我非常感谢任何帮助。

共有1个答案

傅花蜂
2023-03-14

我终于自己解决了。

事实证明,wsgi将来自localhost或外部IP的请求作为不同的实例组处理。所以我所要做的就是把

WSGIApplicationGroup %{GLOBAL}

/etc/apache2/sites-available/000-default.conf
 类似资料:
  • 我今天安装了一个新的CentOS 7x86_64LAMP服务器。 我用c编译了一个简单的CGI脚本,我称之为test.cgi,我为. cgi脚本启用了addHandler。然而,每次我尝试从 /var/www/html目录加载/test.cgi页面时,任何简单的. cgi脚本都会给我抛出一个500内部服务器错误页面。 我测试了脚本是否从 /var/www/cgi-bin 目录工作正常。我的服务器正

  • 我正在使用flask(1.1.1)和spyder(版本=4.1.4)构建区块链。我运行了整个代码,然后去找postman以获得get请求的结果(get\u chain),结果正常。但当我跑的时候http://127.0.0.1:/5000/mine_block.It显示500内部服务器错误。这是完整代码截图完整代码截图mine block Get requestresults

  • 我正在为一个web使用flask构建一个api,我已经有了一个数据库,GET请求可以工作,但当我尝试发布时,它会给我这个错误 500内部服务器错误 这是我写的代码 这是我在邮递员上添加的请求 我还使用了一个本地服务器,我查看了其他链接,每个人都在询问日志,如果我没有错,我想我可以从 看法 这是日志的截图:(我想) 到底是什么问题我不明白 编辑:这是完整的代码: 第二次编辑:控制台日志 添加def错

  • 我通过Ngrok URL为我的Facebook页面设置了我的Webhok,并应用了Messenger平台的所有要求,但当我将消息发送到我的Facebook页面时,我遇到以下错误: 在Laravel中的routs文件中,我使用Get和Post函数,如下所示: 发送消息时,我在storage/app.logs/laravel中收到以下错误: 我的公共职能索引: 请支持和感谢。

  • 问题内容: 我正在尝试为这个工作中的项目学习AJAX。我有一个网站加载病人正在服用的药物。 我递归调用此AJAX函数,以便它将附加一个包含单种药物和7天历史记录的新表。我在使代码在FF和IE中执行时遇到问题。在chrome中效果很好。我有显示xmlhttp.status的警报,这是我得到的: xmlhttp.status == 500(内部服务器错误)。 我注释掉了所有递归,因此将其范围缩小到了这

  • 我收到以下错误 内部服务器错误 服务器遇到内部错误或配置错误,无法完成您的请求。 请联系服务器管理员,webmaster@strivemedicare.in并告知他们错误发生的时间,以及可能导致错误的任何行为。 有关此错误的详细信息,请参阅服务器错误日志。 此外,尝试使用错误文档处理请求时遇到 500 内部服务器错误错误。