Frage nginx ohne server_name und nur statische IP-Adresse verwenden?


Dies ist meine erste Web-App-Bereitstellung und es treten alle möglichen Probleme auf.

Ich bin derzeit für eine Nginx + Gunicorn-Implementierung für die Django-App, aber meistens bezieht sich diese Frage auf Nginx-Konfigurationen. Für einige Kontexte würde nginx Verbindungen und Proxy zum lokalen gunicorn Server erhalten.

in den Nginx-Konfigurationen, wo es heißt server_name muss ich einen zur Verfügung stellen? Ich beabsichtige nicht, Domainnamen irgendeiner Art zu verwenden, nur durch die externe IP meines Netzwerkes (es ist statisch) und die Portnummer, auf die ich höre.

Mein Wunsch ist, dass wenn ich auf etwas zugreifen möchte http://xxx.xxx.xxx.xxx:9050 Ich könnte die Seite bekommen.

Der folgende Code ist der Beispielcode, auf den ich die Konfigurationen als Referenz aufbauen werde.

   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;
     }

21
2018-01-19 16:31


Ursprung




Antworten:


server_name standardmäßig auf eine leere Zeichenfolge, was in Ordnung ist; Sie können es vollständig ausschließen.

Ein anderer allgemeiner Ansatz für das "Ich möchte hier keinen Namen geben" ist zu verwenden server_name _;

Ihre http://xxx.xxx.xxx.xxx:9050 Die URL funktioniert jedoch nicht mit dieser Konfiguration. Sie hören nur Port 80. Sie müssten ein hinzufügen listen 9050; auch.


23
2018-01-19 16:35



Hey, kannst du dir das ansehen? serverfault.com/questions/678521/ ... - Muhammad Umer
etwas verwandt - Muhammad Umer


Servername _; ist kein Platzhalter, siehe hier:

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

Geben Sie einfach die Anweisung default_server für den Nur-IP-Zugriff an (siehe http://nginx.org/en/docs/http/request_processing.html)

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

5
2018-02-20 05:55



Es ist entmutigt, einfach auf die nützliche Information zu verweisen und sie nicht in Ihre Antwort aufzunehmen - in diesem Fall, dass die server_name _; ist ein Nicht-Übereinstimmung. - BE77Y
"ist keine Wildcard" == "ist eine Nicht-Übereinstimmung". Ich bin sicher, sie werden es bekommen. - Joe
Die zwei sind nicht gleich; Non-Match ist das, was serviert wird, wenn nichts anderes passt, während ein Wildcard mit allem übereinstimmt. Der Punkt hier ist jedoch, dass die nützliche Information in der Antwort sein sollte, nicht verbunden auf einer anderen Seite (wie gut präsentiert auf dieser Seite), wie detailliert Hier - BE77Y
Und der Punkt ist, dass dies keine "gute Antwort" ist, aber es ist eine Antwort. Entschuldigung, keine Zeit. Wenn Sie es bearbeiten / umschreiben möchten, gebe ich Ihnen die volle Erlaubnis dazu. Ansonsten wissen sie genau, was zu tun ist, und es ist hilfreich. Fühlen Sie sich frei, es umzuschreiben, sonst steht die Antwort. - Joe
Wenn Sie "keine Zeit" hätten, eine zusätzliche Zeile mit den relevanten Informationen einzubeziehen, weiß ich ehrlich gesagt nicht, warum Sie sich geweigert haben, einen 3 Jahre alten Beitrag mit einer akzeptierten Antwort zu beantworten! - BE77Y


Wenn Sie möchten, dass Ihre App auf Port 9050 ohne bestimmten Hostnamen antwortet, können Sie server_name einfach überspringen. Dies ist nicht erforderlich, da Nginx zuerst listen entry und dann server_name, falls vorhanden, auflöst:

server {
   listen 9050;

   .....
}

Weitere Details hier: Nginx Servername und wie es funktioniert


1
2018-04-15 16:31