¿nginx se está ejecutando pero no funciona?

¿nginx se está ejecutando pero no funciona?

He estado intentando configurar nginx como proxy para Jetty. Tengo una computadora portátil con un servidor Ubuntu. Ahora hice que jetty funcionara en localhost:8080 y sirve como página de inicio de la aplicación en http://192.168.1.5:8080/my-webapp-0.1.0-standalone/.

Configuré nginx así (Lo adapté de esta página.):

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

Y puedo conectarme a nginx desde mi red doméstica y veo la pantalla de bienvenida de nginx.

yo también lo intenté$ sudo netstat -tanpl|grep nginx

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

y veo que nginx está escuchando en el puerto 80.

Pero cuando intento cargar nomilkfor.me aparece el error "Chrome no pudo conectarse a nomilkfor.me".

¿Qué estoy haciendo mal?



EDITAR

Creé una configuración muy simple, y esta también sirve la index.htmlentrada /usr/share/nginx/en lugar de la aplicación a través de 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/;
    }
}


EDITAR 2

Parece que nginx está usando otro archivo de configuración del que creo. Agregué un error tipográfico al archivo de configuración /etc/nginx/sites-available/nomilkfor.me(eliminé una llave de cierre) y $ nginx -s reloadlo ejecuté, se compiló sin errores y mostró la página de inicio de nginx en el navegador. ¿Puede haber otro archivo conf en alguna parte? ¿Hay alguna manera de encontrar qué archivo de configuración está usando nginx?



EDITAR 3

segúnComentario de PaziAgregué root, pero no estoy seguro exactamente de dónde debería estar o qué debería ser. Agregué algunas sugerencias. ¿Cuál es correcto? /usr/share/nginx/htmles donde tengo el 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/;
    }
}


EDITAR 4

Este es mi archivo de configuración de embarcadero. Está dentro/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>

Respuesta1

¿Puedes probar los siguientes pasos?

  1. Asegúrese de que el archivo nginx.conf en el directorio principal de nginx tenga la directiva de inclusión que apunte al archivo predeterminado en el directorio de sitios disponibles

  2. Si necesita proxy a otro servicio (por ejemplo, embarcadero), use la opción ascendente (en el archivo de sitios disponibles/predeterminado) como se comparte a continuación. Puede consultar el upstream desde la sección del servidor.

Una vez que tenga la configuración básica funcionando, puede verificar la opción de reescritura y si es necesario hacer algo con el nombre de host. Espero eso ayude.

Nginx.conf:

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

En el directorio de sitios disponibles (archivo predeterminado):

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
        }

Además, se puede verificar el archivo de configuración de nginx (antes de recargar/reiniciar) de la siguiente manera: nginx -t -c /etc/nginx/nginx.conf

Actualizar: ¿Puedes verificar si jetty se estaba ejecutando en 0.0.0.0:8080 cuando probaste la configuración de nginx (quizás confirmar usando netstat)? Además, ¿puedes compartir los registros de acceso/error de nginx cuando accedes a la URL a través del navegador?

información relacionada