web-dev-qa-db-ja.com

nginxは実行中ですが機能しませんか?

私は桟橋へのプロキシとしてnginxをセットアップしようとしています。 1台のラップトップでUbuntuサーバーを実行しています。今、私は突堤をlocalhost:8080で動作させ、http://192.168.1.5:8080/my-webapp-0.1.0-standalone/でアプリのホームページを提供します。

私はこのようにnginxを設定しました( 私はこのページからそれを適応させました ):

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

ホームネットワークからnginxに接続すると、nginxのウェルカム画面が表示されます。

私も$ Sudo netstat -tanpl|grep nginxを試しました

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

nginxがポート80でリッスンしていることがわかります。

しかし、nomilkfor.meを読み込もうとすると、「Chromeはnomilkfor.meに接続できませんでした」というエラーが表示されます。

何が悪いのですか?



[〜#〜]編集[〜#〜]

私は非常にシンプルな構成を作成しましたが、これもjettyを介してアプリの代わりにindex.html/usr/share/nginx/を処理します。

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


編集2

Nginxは私が思うよりも別のconfファイルを使用しているようです。 confファイル/etc/nginx/sites-available/nomilkfor.meにタイプミスを追加し(閉じ中かっこを削除しました)、$ nginx -s reloadを実行したところ、エラーなくコンパイルされ、ブラウザにnginxスプラッシュページが表示されました。どこかに別のconfファイルがありますか? nginxが使用しているconfファイルを見つける方法はありますか?



EDIT 3

Pazisコメント のようにrootを追加しましたが、どこにあるべきか、または何をすべきか正確にはわかりません。いくつかの提案を追加しました。どちらが正しいか? /usr/share/nginx/htmlは、私が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

これは私のjetty confファイルです。 /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>
8
Zeynel

次の手順を試すことができますか?

  1. 親nginxディレクトリのnginx.confファイルに、sites-availableディレクトリのデフォルトファイルを指すincludeディレクティブがあることを確認してください

  2. 別のサービス(例:jetty)にプロキシする必要がある場合は、(sites-available/defaultファイルにある)アップストリームオプションを使用して、以下で共有します。サーバーセクションからアップストリームを参照できます。

基本設定が機能するようになったら、書き換えオプションをチェックし、ホスト名に対して何かを行う必要があるかどうかを確認できます。それが役に立てば幸い。

Nginx.conf:

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

sites-availableディレクトリ(デフォルトファイル):

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
        }

また、nginx confファイルを(リロード/再起動する前に)次のように確認できます:nginx -t -c /etc/nginx/nginx.conf

pdate: nginx構成を試行したときに、Jettyが0.0.0.0:8080で実行されていたかどうかを確認できますか(おそらくnetstatを使用して確認します)。また、ブラウザ経由でURLにアクセスするときに、nginxからのアクセス/エラーログを共有できますか?

10
ali haider