nginx bedient keine Anfragen an eine externe IP-Adresse

10

Ich habe Nginx auf Port 81. Ich kann Telnet verwenden telnet 127.0.0.1 81und alles ist in Ordnung.

Wenn ich jedoch versuche, von meinem Mac (einer externen IP-Adresse) aus auf mein Gerät zu telneten, wird nur der folgende Fehler angezeigt:

telnet: connect to address 109.123.x.x: Connection refused
telnet: Unable to connect to remote host

Hier ist meine / etc / nginx / sites-available / default-Datei:

server {
        listen   81; ## listen for ipv4; this line is default and implied
        #listen   [::]:80 default ipv6only=on; ## listen for ipv6

        root /usr/share/nginx/www;
        index index.html index.htm;

        # Make site accessible from http://localhost/
        server_name 109.123.x.x;

        location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to index.html
                try_files $uri $uri/ /index.html;
        }
        ...

Ich habe die Ubuntu Firewall (ufw) geöffnet, um Port 81 zuzulassen.

Ich stecke jetzt total fest.

Hat jemand irgendwelche Ideen?

Eamorr
quelle

Antworten:

17

Sie haben den Servernamen als

server_name 109.123.x.x;

Das ist falsch !!!!!

Geben Sie einen beliebigen Namen ein, der nicht der Nummer entspricht

server_name mywebsite.home;

und fügen Sie mywebsite.home als IP des Nginx-Servers in Ihre Host-Datei (/ etc / hosts) ein, dh in Ihrem Mac wie im Format

109.123.X.X mywebsite.home

wobei XX durch Zahlen ersetzt wird

oder

Wenn Sie alle Anfragen bearbeiten möchten, geben Sie einfach an

server_name _;

Wenn dies die Probleme nicht löst, überprüfen Sie unten

Entweder ist es Ihre Firewall, dh Iptables, die Ihren Datenverkehr blockieren, oder Sie haben Ihre Nginx nur bei localhost, dh 127.0.0.1

Deaktivieren Sie die Firewall

sudo ufw disable

Überprüfen Sie die Überwachungsadresse für Port 81

sudo netstat -tulpn
Kaji
quelle
Ich habe auf Port 8080 umgestellt und es funktioniert jetzt. Könnte etwas mit einem privilegierten Port zu tun haben oder vielleicht blockiert meine 3G-Verbindung Port 81. Wie auch immer, es funktioniert jetzt. Vielen Dank für deine Hilfe.
Eamorr
Wenn es sich um eine Instanz in der Cloud wie Rackspace oder AWS handelt, überprüfen Sie Ihre Sicherheitsgruppen. Standardmäßig sind nur die Ports 22 und 80 geöffnet.
Radtek
das sudo ufw disablehat es für mich getan.
GG_Python
Laut dem Nginx-Dokument ist die Verwendung der IP-Adresse mit dem Servernamen nicht falsch . "Wenn jemand eine Anfrage unter Verwendung einer IP-Adresse anstelle eines Servernamens stellt, enthält das Feld" Host "-Anforderungsheader die IP-Adresse, und die Anfrage kann unter Verwendung der IP-Adresse als Servername bearbeitet werden.":
Gabriel Glenn
1

Ich habe das gleiche Problem vor einigen Monaten, als ich versuche, ngnix auf meinem Ubuntu-System auszuführen und von einem anderen Windows-System aus auf die Dienste zuzugreifen. Aber ich kann keinen Portdienst wie http://127.0.0.1/8000 ausführen, nachdem ich dies durch Ausschalten der Firewall meines Ubuntu-Systems überwunden habe.

Befehl zum Ausschalten der Firewall:

    sudo ufw disable

Sie können auch zuerst den Status Ihrer Firewall überprüfen:

    sudo ufw status
Abhishek-Saini
quelle
0

Tipps, die mir geholfen haben: A.) Portweiterleitung B.) Festlegen der öffentlichen IP als Servername Diese Schritte haben bei mir funktioniert, insbesondere Tipp A.)

A09hopper
quelle
Der Servername sollte niemals wirklich eine IP sein.
Matt