nginx läuft, stellt aber nicht bereit?

nginx läuft, stellt aber nicht bereit?

Ich habe versucht, Nginx als Proxy für Jetty einzurichten. Ich habe einen Laptop, auf dem ein Ubuntu-Server läuft. Jetzt habe ich Jetty unter localhost:8080 zum Laufen gebracht und es stellt die Homepage für die App unter bereit http://192.168.1.5:8080/my-webapp-0.1.0-standalone/.

Ich habe nginx wie folgt konfiguriert (Ich habe es von dieser Seite adaptiert):

server {
  listen 80;
  server_name nomilkfor.me;
  rewrite ^(.+?)/?$ http://nomilkfor.me$1 permanent;
}

server {
  listen 80;
  server_name www.nomilkfor.me;
  root /usr/share/nginx/html;

  location / {
    try_files $uri @my-webapp;
  }

  location @my-webapp {
    proxy_pass http://localhost:8080;
  }
}

Und ich kann von meinem Heimnetzwerk aus eine Verbindung zu Nginx herstellen und sehe den Begrüßungsbildschirm von Nginx.

Ich habe auch versucht$ sudo netstat -tanpl|grep nginx

tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      3264/nginx: worker 

und ich sehe, dass Nginx auf Port 80 lauscht.

Aber wenn ich versuche, nomilkfor.me zu laden, erhalte ich die Fehlermeldung „Chrome konnte keine Verbindung zu nomilkfor.me herstellen“.

Was mache ich falsch?



BEARBEITEN

Ich habe eine sehr einfache Konfiguration erstellt und auch diese bedient den index.htmlEingang /usr/share/nginx/statt der App über Jetty:

server {
    listen 80;
    server_name nomilkfor.me;

    # access_log /var/log/nginx/localhost.access.log;

    location / {
        proxy_pass http://127.0.0.1:8080;
    }

    location /html { 
        root /usr/share/nginx/;
    }
}


BEARBEITEN 2

Es scheint, dass nginx eine andere Conf-Datei verwendet, als ich denke. Ich habe der Conf-Datei einen Tippfehler hinzugefügt /etc/nginx/sites-available/nomilkfor.me(ich habe eine schließende geschweifte Klammer entfernt) und sie ausgeführt $ nginx -s reloadund sie wurde ohne Fehler kompiliert und zeigte die Nginx-Splash-Seite im Browser. Kann es irgendwo eine andere Conf-Datei geben? Gibt es eine Möglichkeit herauszufinden, welche Conf-Datei nginx verwendet?



BEARBEITEN 3

GemäßPazis KommentarIch habe es hinzugefügt, rootbin mir aber nicht sicher, wo genau es sein sollte oder was es sein sollte. Ich habe ein paar Vorschläge hinzugefügt. Welcher ist richtig? /usr/share/nginx/htmlist dort, wo ich das habe index.html.

server {
    listen 80;
    server_name nomilkfor.me;
    # root /home/z/jetty/jetty-dist/webapps
      root /usr/share/nginx/html;

    location / {
        proxy_pass http://127.0.0.1:8080;
    }

    #location /html {
    #    root /usr/share/nginx/;
    }
}


BEARBEITEN 4

Dies ist meine Jetty-Conf-Datei. Sie befindet sich in/home/z/jetty/jetty-dist/jetty-distribution-9.1.0.v20131115/demo-base/webapps/my-webapp.xml

<Configure class="org.eclipse.jetty.webapp.WebAppContext">

  <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
  <!-- Required minimal context configuration :                        -->
  <!--  + contextPath                                                  -->
  <!--  + war OR resourceBase                                          -->
  <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
  <Set name="contextPath">/test</Set>
  <Set name="war"><Property name="jetty.webapps" default="."/>/my-webapp-0.1.0-standalone.war</Set>

Antwort1

Können Sie die folgenden Schritte versuchen?

  1. Stellen Sie sicher, dass die Datei nginx.conf im übergeordneten nginx-Verzeichnis die Include-Direktive enthält, die auf die Standarddatei im sites-available-Verzeichnis verweist.

  2. Wenn Sie einen Proxy zu einem anderen Dienst (z. B. Jetty) benötigen, verwenden Sie die Upstream-Option (in der Datei sites-available/default), wie unten angegeben. Sie können den Upstream im Abschnitt „Server“ einsehen.

Sobald die Grundkonfiguration funktioniert, können Sie die Umschreiboption überprüfen und feststellen, ob für den Hostnamen etwas getan werden muss. Ich hoffe, das hilft.

Nginx.conf:

include /etc/nginx/sites-enabled/*;

Im Verzeichnis sites-available (Standarddatei):

upstream nomilkforme {  
        server 0.0.0.0:8080; ##nomilkforme running on 0.0.0.0:8080;
        keepalive 500;
}

server {
        listen       80;
        server_name  localhost;

        #access_log  logs/host.access.log  main;

        location / {
                proxy_redirect off;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Proto $scheme;
                proxy_set_header Host $http_host;
                proxy_set_header X-Nginx-Proxy true;
                proxy_set_header Connection "";
                proxy_http_version 1.1;
                proxy_pass http://nomilkforme
        }

Außerdem kann man die Nginx-Conf-Datei (vor dem Neuladen/Neustart) wie folgt überprüfen: nginx -t -c /etc/nginx/nginx.conf

Aktualisieren: Können Sie überprüfen, ob Jetty auf 0.0.0.0:8080 lief, als Sie die Nginx-Konfiguration ausprobiert haben (möglicherweise mit netstat bestätigen). Können Sie außerdem die Zugriffs-/Fehlerprotokolle von Nginx freigeben, wenn Sie über den Browser auf die URL zugreifen?

verwandte Informationen