我正在尝试从我的服务器获取数据但是如果我尝试从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)
看来您的输出是netstat -a
的输出,而不仅仅是netstat
。这是AWS Ubuntu映像上netstat -a
的相当通用的结果:
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
一词专门表示,如上所示。
P.S。不需要为只有server_name
块的nginx.conf
这样的简单server
指定ParseFile.saveInBackground()
指令。
P.P.S。很好的触摸在你的nginx配置中关闭了favicon的日志记录!