2017-02-10 5 views
0

サーバでlocalhost:9001を実行しています。 localhost/supervisordで配信しようとしています。ページが502 Bad Gatewayを返していました^~ /images^~ /stylesheets場所を追加する前にNginxのスーパーバイザコンフィギュレーション

worker_processes 1; 
error_log /var/log/nginx/error.log; 
pid /tmp/nginx.pid; 
#daemon off; 

events { 
    worker_connections 1024; 
} 

http { 
    # MIME/Charset 
    default_type application/octet-stream; 
    charset utf-8; 

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

    # Other params 
    server_tokens off; 
    tcp_nopush on; 
    tcp_nodelay off; 
    sendfile on; 

    upstream supervisord { 
     server localhost:9001; 
    } 

    server { 
     listen 80; 
      client_max_body_size 4G; 
      keepalive_timeout 5; 

     location ^~ /stylesheets { 
      alias /Users/ocervell/.virtualenvs/ndc-v3.3/lib/python2.7/site-packages/supervisor/ui/stylesheets; 
      access_log off; 
     } 

     location ^~ /images { 
      alias /Users/ocervell/.virtualenvs/ndc-v3.3/lib/python2.7/site-packages/supervisor/ui/images; 
      access_log off; 
     } 

     location /supervisord { 
      # Set client IP/Proxy IP 
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
      proxy_set_header X-Real-IP $remote_addr; 

      # Set host header 
      proxy_set_header Host $http_host; 
      proxy_redirect off; 
      proxy_pass http://supervisord/; 
     } 
    } 
} 

nginx configが、このようなものです。

上記の設定では、localhost/supervisordにアクセスできますが、ページにCSSがありません。

は、私は、CSS /画像がブラウザに正しくロードされている参照してください。

Assets loaded

しかし、私は、ブラウザのコンソールにエラーメッセージが表示され、犯人であるように思わ:

Stylesheet not loaded

localhost/stylesheets/supervisor.cssのブラウザのMIMEタイプは、text/cssの代わりにoctet-streamと表示されます。

ブラウザのMIMEタイプがlocalhost:9001/stylesheets/supervisor.cssの場合は、正しいtext/cssと表示されます。

このエラーを修正するにはどうすればよいですか?

静的ファイルのMIMEタイプを動的に書き換えることを考えましたが、私はnginxのエキスパートではなく、nginxの設定方法はわかりません。

答えて

1

透明なリバースプロキシの後ろにWebインターフェイスを置くような明白な機能は、構成するのがそれほど簡単ではありません。

  location /supervisor { 
      proxy_pass http://127.0.0.1:9001/; 
      } 

      location/{ 

      if ($http_referer ~ "^.*/supervisor"){ 
       return 301 /supervisor/$request_uri; 
      } 
      } 

アプリケーション側の要求が主なエンドポイントをヒットしますが、その後nginxのは意志:

はとにかくこれは私が上司のように、ルートを変更することはできませんアプリケーションでの作業リバースプロキシを取得するために何をすべきかです

  1. を取得:EP

    これは、ほとんどの場合は動作しますが、always.The次のスーパーバイザのWeb機能が失敗しますない-再ダイレクト/スーパーバイザにそれらをアクションの確認 - サービスの開始/停止はできますが、結果ページの読み込みに失敗します。 /スーパーバイザEPに行って結果を確認してください。

  2. ライブテールは機能しません。ただし、手動リフレッシュを伴うログ表示があり、プログラム名とのリンクの下で動作します。

とにかくこの部分的なサポートは私にはいいですが、あなたも役に立つかもしれません。