server_name이없고 정적 IP 주소 만 사용하는 nginx?

이것은 첫 번째 웹 응용 프로그램 배포이며 모든 종류의 문제가 발생합니다.

현재 Django 앱의 nginx + gunicorn 구현을 시도하고 있지만 대부분이 질문은 nginx 구성과 관련이 있습니다. 일부 상황에서-nginx는 gunicorn 로컬 서버에 대한 연결 및 프록시를 수신합니다.

nginx 구성에서 제공해야한다고 말하는 곳은 server_name무엇입니까? 네트워크의 외부 IP (정적)와 수신 할 포트 번호를 통해 어떤 종류의 도메인 이름도 사용할 계획이 없습니다.

내가 원하는 것은 내가 사이트에 접근 할 수있는 것과 같은 것에 접근 할 때 http://xxx.xxx.xxx.xxx:9050이다.

다음은 참조 용으로 구성 할 샘플 코드입니다.

   server {
        listen   80;
        server_name WHAT TO PUT HERE?;

    root /path/to/test/hello;

    location /media/ {
        # if asset versioning is used
        if ($query_string) {
            expires max;
        }
    }
    location /admin/media/ {
        # this changes depending on your python version
        root /path/to/test/lib/python2.6/site-packages/django/contrib;
    }
    location / {
        proxy_pass_header Server;
        proxy_set_header Host $http_host;
        proxy_redirect off;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Scheme $scheme;
        proxy_connect_timeout 10;
        proxy_read_timeout 10;
        proxy_pass http://localhost:8000/;
    }
        # what to serve if upstream is not available or crashes
        error_page 500 502 503 504 /media/50x.html;
     }



답변

server_name기본값은 빈 문자열이며 괜찮습니다. 완전히 제외 할 수 있습니다.

“나는 이것에 이름을 붙이고 싶지 않다”필요에 대한 또 다른 일반적인 접근법은 server_name _;

귀하의 http://xxx.xxx.xxx.xxx:9050URL이 설정,하지만 작동하지 않습니다; 포트 80 만 듣고 있습니다. 또한 포트 80을 추가해야합니다 listen 9050;.


답변

서버 이름 _; 와일드 카드가 아닙니다. 여기를 참조하십시오.

http://blog.gahooa.com/2013/08/21/nginx-how-to-specify-a-default-server

IP 전용 액세스를 위해 default_server 지시문 만 지정하십시오 ( http://nginx.org/en/docs/http/request_processing.html 참조 ).

server {
    listen 1.2.3.4:80 default_server;
    ...
    }


답변

앱이 특정 호스트 이름없이 포트 9050에서 응답하도록하려면 server_name을 건너 뛸 수 있습니다 .Nginx가 먼저 수신 항목을 확인한 다음 server_name이있는 경우 필요하지 않습니다.

server {
   listen 9050;

   .....
}

자세한 내용은 여기 : Nginx server_name 및 작동 방식


답변