【问题标题】:Nginx Why does my server serve correct content on localhost but not 0.0.0.0Nginx 为什么我的服务器在 localhost 上提供正确的内容而不是 0.0.0.0
【发布时间】:2017-03-06 13:03:51
【问题描述】:

我正在尝试从我的服务器获取数据,但如果我从 0.0.0.0/my/api 尝试它会给出 400,但如果我从 localhost/my/api 尝试它会给出我需要的内容。我正在使用 nginx,这是服务器的配置文件

server {
    listen 80;
    server_name localhost;
    access_log /var/log/nginx/myapp.log;

    location = /favicon.ico { access_log off; log_not_found off; }
    location /static/ {
        root /home/myapp;
    }

    location / {
        proxy_pass http://127.0.0.1:8000;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

另外,如果我做一个 netstat,我会为服务器得到这个

tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      8080/nginx

为什么它只会给我来自 localhost 的正确内容,而给我来自 0.0.0.0 地址的 400?这也是这样做的,所以我无法从外部机器访问 api。最后,我使用 gunicorn 作为后端服务器,并使用 nginx 反向代理 gunicorn。

【问题讨论】:

  • 0.0.0.0 不是您服务器的 IP 地址。 ifconfig 显示什么?
  • 如果您在设置中设置了DEBUG=False,则需要确保您已正确设置ALLOWED_HOSTS。所以,如果它只包含'127.0.0.1',那可能是你的问题。
  • @csinchok 我将它从 ALLOWED_HOSTS=['localhost'] 更改为 ALLOWED_HOSTS=['0.0.0.0'] 仍然无法正常工作。
  • @RichardSmith 显示内部私有 aws ip x.x.x.x
  • 当你说你无法从0.0.0.0/my/api 获取数据时,那可能是因为那是“本地网络上的所有 IP”的元数据,所以它不知道去哪里。如果您在本地主机上工作,请使用 127.0.0.1

标签: linux django nginx server


【解决方案1】:

看起来您的输出是来自netstat -a 的输出,而不仅仅是netstat。这是来自 netstat -a 在 AWS Ubuntu 映像上的一个相当通用的结果:

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 0.0.0.0:hostmon         0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:http            0.0.0.0:*               LISTEN
tcp        0      0 localhost:domain        0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:ssh             0.0.0.0:*               LISTEN

正如其中一位评论者所说,0.0.0.0 表示“所有 IP 地址”。

Localhost 将具体由单词localhost 表示,如上所示。

附:不需要为这样一个简单的 nginx.conf 指定 server_name 指令,因为您只有一个 server 块。

附言在您的 nginx 配置中关闭网站图标的日志记录非常棒!

【讨论】:

    猜你喜欢
    • 2018-07-19
    • 1970-01-01
    • 1970-01-01
    • 2016-11-10
    • 1970-01-01
    • 1970-01-01
    • 2014-10-16
    • 2017-02-28
    • 1970-01-01
    相关资源
    最近更新 更多