nginx está em execução, mas não está sendo veiculado?

3

Estou tentando configurar o nginx como um proxy para o Jetty. Eu tenho um laptop executando o servidor Ubuntu. Agora fiz o jetty trabalhando no localhost: 8080 e ele serve a home page do aplicativo em http://192.168.1.5:8080/my-webapp-0.1.0-standalone/ .

Eu configurei o nginx assim ( Eu o adaptei desta 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;
  }
}

E posso me conectar ao nginx da minha rede doméstica e vejo a tela de boas-vindas do nginx.

Eu também tentei $ sudo netstat -tanpl|grep nginx

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

e vejo que o nginx está escutando na porta 80.

Mas quando tento carregar o nomilkfor.me, recebo o erro "O Chrome não pôde se conectar ao nomilkfor.me".

O que estou fazendo de errado?

EDITAR

Eu criei uma configuração muito simples, e esta também serve o index.html em /usr/share/nginx/ em vez do aplicativo por meio do 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/;
    }
}

EDIT 2

Parece que o nginx está usando outro arquivo conf do que eu acho. Eu adicionei um erro de digitação no arquivo conf /etc/nginx/sites-available/nomilkfor.me (removi uma chave de fechamento) e executei $ nginx -s reload e ele compilou sem erro e mostrei a página inicial do nginx no navegador. Pode haver outro arquivo conf em algum lugar? Existe uma maneira de encontrar qual arquivo conf nginx está usando?

EDIT 3

De acordo com o comentário do Pazis , adicionei root , mas não Certifique-se exatamente onde deveria estar ou o que deveria ser. Eu adicionei algumas sugestões. Qual deles está correto? /usr/share/nginx/html é onde eu tenho o 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/;
    }
}

EDIT 4

Este é o meu arquivo conf do jetty. Está em /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>
    
por Zeynel 25.12.2013 / 20:05

1 resposta

6

Você pode tentar os seguintes passos?

  1. Certifique-se de que o arquivo nginx.conf no diretório nginx pai tenha a diretiva include apontando para o arquivo padrão no diretório de sites disponíveis

  2. Se você precisar fazer proxy para outro serviço (por exemplo, jetty), use a opção upstream (no arquivo sites-available / default) como compartilhada abaixo. Você pode consultar o upstream da seção do servidor.

Depois de ter a configuração básica funcionando, você pode verificar a opção de reescrever e se alguma coisa precisa ser feita para o nome do host. Espero que ajude.

Nginx.conf:

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

No diretório disponível para sites (arquivo padrão):

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
        }

Além disso, pode-se verificar o arquivo conf nginx (antes de recarregar / reiniciar) da seguinte forma:    nginx -t -c /etc/nginx/nginx.conf

Atualização: Você pode verificar se o jetty estava sendo executado em 0.0.0.0:8080 quando você tentou a configuração nginx (talvez confirme usando netstat). Além disso, você pode compartilhar os logs de acesso / erro do nginx quando acessa o URL através do navegador?

    
por 27.12.2013 / 19:16