2017-06-07 44 views
0

現在、Rundeckがnginx reverse ssl proxyの背後にある環境を設定しようとしています。私はこのシナリオではオンラインで別のチュートリアルを見つけましたが、私のために働いたものはありませんでした。私は、rundeckとnginxの両方が動作するLinux環境で作業しています。このようなrundeckのloooksのための私のnginxの設定ファイル:Rundeckの背後にあるSSLプロキシ

server { 
     access_log /var/log/nginx/rundeck.access.log main; 


     listen 443; 
     listen  [::]:443; 
     ssl on; 
     ssl_certificate /etc/nginx/conf.d/cert.crt; 
     ssl_certificate_key /etc/nginx/conf.d/key.rsa; 

     location/{ 
      proxy_pass http://localhost:4440/; 
      proxy_set_header  Host   $host; 
      proxy_set_header  X-Real-IP  $remote_addr; 
      proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for; 
      proxy_set_header X-Ssl on; 
} 

     error_page 404 /404.html; 
      location = /40x.html { 
     } 

     error_page 500 502 503 504 /50x.html; 
      location = /50x.html { 
     } 
    } 

はさらに私はrundeckでこれらのパラメータを設定した: framework.server.url = https://localhost:4440grails.serverURL=https://lde71d6p.de.top.com:443 私はポートせずに、ポートと、HTTPSまたはHTTPでのみ異なる組み合わせを試してみました。いずれも正しく動作しません。

現在の設定では、次のようなエラーが発生します。 http://hostname.top.com - >接続エラー(ポート80がnginxによって処理されないため問題ありません) https://hostname.top.com - > 302を取得し、http://hostname.top.com/user/login;jsessionid=xxxxxxxにリダイレクトされ、接続エラーが発生します。 https://hostname.top.com/user/loginは私をrundeckのログインインターフェースにまっすぐにつかまえます。大丈夫だ。

私が最初に言及したエラー状況を解決してくれる人は誰も助けてくれますか?

種類よろしく、

マックス

答えて

0

は、SSLプロキシの背後Rundeckを実行するには、次の3つの設定が必要です

https://github.com/rundeck/rundeck/wiki/FAQ#can-i-do-ssl-offloading

  • HTTPとしてRunDeckを設定し
  • でプロファイルファイル、オプション-Drundeck.jetty.connector.forwarded = trueをRDECK_JVMに追加する
  • あなたのケースでは、HTTPS

を使用する

  • セットframework.rundeck.urlとgrails.serverURL、プロファイルの設定がまだ行われているようには見えません。

    プロフィールは/etc/rundeck/profileです。

    RDECK_JVM="-Djava.security.auth.login.config=$JAAS_CONF \ 
         -Dloginmodule.name=$LOGIN_MODULE \ 
         -Drdeck.config=$RDECK_CONFIG \ 
         -Drundeck.server.configDir=$RDECK_SERVER_CONFIG \ 
         -Dserver.datastore.path=$RDECK_SERVER_DATA/rundeck \ 
         -Drundeck.server.serverDir=$RDECK_INSTALL \ 
         -Drdeck.projects=$RDECK_PROJECTS \ 
         -Drdeck.runlogs=$RUNDECK_LOGDIR \ 
         -Drundeck.config.location=$RDECK_CONFIG/rundeck-config.properties \ 
         -Djava.io.tmpdir=$RUNDECK_TEMPDIR \ 
         -Drundeck.server.workDir=$RUNDECK_WORKDIR \ 
         -Dserver.http.port=$RDECK_HTTP_PORT \ 
         -Drundeck.jetty.connector.forwarded=true" 
    
  • +0

    ちょっとおかげで答えを、私はこれを言及するのを忘れ、私はすでにJVM引数に変更: '輸出RDECK_JVMを=" - Dloginmodule.conf.name = JAAS-gdiscombined.conf \ -Dloginmodule.name =組み合わせ-Drundeck.jetty.connector.forwarded = true "'これは役に立たなかった:( – hypePG

    +0

    私の '/ etc/rundeck/framework.properties'に' framework.server.url'はhttp、 'framework.rundeck.url'はhttpsです設定を確認してください。 – minamijoyo

    0

    をあなたのエラーの背後にある理由

    エラー-1: listen 443サーバーがポートでリッスンされていない

    次のようにRDECK_JVMにオプション-Drundeck.jetty.connector.forwarded=trueを追加します(これは、ディストリビューションに依存してもよいです) 80、それを修正するにはあなたの設定にlisten 80;を追加します。

    エラー2:location/{ proxy_pass http://localhost:4440/; リクエストを4440にリダイレクトし、エラーコード302を取得します。

    エラー-3 & 4:誤ったプロキシ設定。

    下記の設定を使用して問題を解決してください。

    server { 
    
    listen 80; 
    
    server_name <hostname>; 
    
    location/{ 
    
        proxy_set_header X-Real-IP $remote_addr; 
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
        proxy_set_header Host $host; 
    
        proxy_redirect http://localhost:4440/ /; 
    
        proxy_pass http://localhost:4440/; 
        } 
    
    } 
    
    関連する問題