127.0.0.1을 통한 Nginx 액세스는 제대로 작동하지만 IP를 통한 액세스는 400을 반환합니다.

127.0.0.1을 통한 Nginx 액세스는 제대로 작동하지만 IP를 통한 액세스는 400을 반환합니다.

Django+uwsgi+Nginx 프로젝트를 배포했지만 127.0.0.1로 nginx에 액세스하면 제대로 작동하고 IP로 액세스하면 400이 반환됩니다.

iptables가 보여줍니다

# iptables -L |grep 8181
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:8181 

Nginx 구성은 다음과 같습니다.

server {
    listen       8181 default;
    server_name  _;

액세스 로그가 표시됩니다.

192.168.1.131 - - [06/Dec/2013:09:55:16 +0800] "GET / HTTP/1.1" 400 
127.0.0.1 - - [06/Dec/2013:10:08:08 +0800] "GET / HTTP/1.1" 200

이 문제가 발생하는 이유는 무엇입니까?

답변1

에 따르면서버 이름에 대한 nginx 문서'_'를 사용하면 안 됩니다. 대신 default_server 지시문을 사용하는 것이 좋습니다.

server {
    listen      80 default_server;
    server_name example.net www.example.net;
    ...
}

관련 정보