2016-10-24 4 views
1

내 서버에서 데이터를 가져 오려고하지만 0.0.0.0/my/api에서 시도하면 400이되지만 localhost에서 시도하면/my/api 필요한 콘텐츠를 제공합니다. 내가 왜는 나에게 로컬 호스트에서 올바른 컨텐츠를 줄 것이다 서버Nginx 내 서버가 localhost에서 올바른 내용을 제공하지만 0.0.0.0이 아닌 이유

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

이를 netstat과를 얻을 경우 여기의 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; 
    } 
} 

의 설정 파일입니다 0.0.0.0 주소에서 400을 제공합니까? 또한 이것은 외부 컴퓨터에서 API에 액세스 할 수 없도록 만듭니다. 마지막으로 gunicorn을 백엔드 서버로 사용하고 nginx를 사용하여 프록시 gunicorn을 리버스합니다.

+0

'0.0.0.0'은 (는) 서버의 IP 주소가 아닙니다. 'ifconfig'는 무엇을 표시합니까? –

+0

설정에'DEBUG = False'를 설정했다면'ALLOWED_HOSTS'를 적절하게 설정해야합니다. 그래서, 단지''127.0.0.1 ''을 포함한다면, 그것은 당신의 쟁점이 될 수 있습니다. – csinchok

+0

@csinchok'ALLOWED_HOSTS = [ 'localhost']'에서'ALLOWED_HOSTS = [ '0.0.0.0']'로 바꾸었지만 여전히 작동하지 않습니다. – xazb

답변

0

출력 결과가 netstat -a 인 것 같습니다. netstat이 아닙니다. 다음은 AWS 우분투 이미지 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이라는 단어로 구체적으로 표시됩니다.

P. server_name 지시어는 nginx.conf 블록에 하나만 지정하면됩니다. server 블록이 하나만 있습니다.

P.P.S. 좋은 터치 귀하의 nginx 구성에서 favicon에 대한 로깅을 해제!

관련 문제