2016-07-25 9 views
0

私はhttpdサーバーを設定して動作させています。サーバーは「それは動作します」と返し、SSLが正しくインストールされていることを確認できます。httpdの後ろにあるjettyコンテナでMoquiが実行されてエラーが表示されます。レンダリングエラー画面

次のステップでは、リバースプロキシを設定して、ユーザーのリクエストがリダイレクトされ、1つのサブドメインの下にさらに多くの顧客のアプリケーションを配置できるようにしました。私が使っているhttpdの設定(以下に示す)は私のものではありません。私はそれを私のために再構成しようとしています。しかし今まで大きな成功はしていない。間違っている可能性のあるディレクティブがありますが、何もコメントしないようにしました。

#Apache is listening on port 443 
Listen 443 
SSLSessionCache   shmcb:c:/Apache24/logs/shmcb_cache(512000) 
SSLSessionCacheTimeout 300 
Mutex default ssl-cache 
SSLRandomSeed connect builtin 
SSLCryptoDevice builtin 
<VirtualHost *:443> 
    #ProxyPreserveHost On 
    SSLProxyEngine On 

    ServerName XXXX.sk 
    ServerAdmin admin 

    # Logs 
    ErrorLog /var/log/rsk_error_log 
    TransferLog /var/log/rsk_access_log 

    # Server Certificate and Private Key: 
    SSLCertificateFile /ssl/certificate.crt 
    SSLCertificateKeyFile /ssl/private.key 
    SSLCertificateChainFile /ssl/chain.crt 

    #Include conf/extra/proxy-443-to-8890.conf 

    ProxyPass /customer http://172.17.0.4:8080 
    ProxyPassReverse /customer http://172.17.0.4:8080 
</VirtualHost> 

は、私がXXXX.sk/customer入力したときに今、私はログイン画面で応答を受信し、それは間違ってレンダリングされ、CSSは一切使用しておりません。多くのエラーが表示されます。ログインすると、応答は返されず、URLが壊れています。

httpdをリバースプロキシモードで使用している方は、あなたのconfigsの少なくとも一部を共有してください。

+0

moqui conf XMLファイル、特にwebapp要素はどのようなものですか?ここでURL書き込みを設定します。仮想ホストがhttpdによって処理され、複数のmoquiインスタンスがある場合は、webapp要素の属性にそれぞれのホスト名を明示的に指定することをお勧めします。 moquiの1つのインスタンスが複数の仮想ホストを扱っている場合、もう少し複雑ですが、ホスト名がパススルーされて使用されていることを確認する必要があります。 –

+0

私はデフォルト設定から始めました。つまり、http-port + http-hostはなく、https-port + https-hostもなく、https-enabled = false(結果はURLにCSSとHTTPSのないログインページでした)を意味します。今、http-port = 80、http-host = XXXX.sk/customer、https-port = 443、https-host = XXXX..sk/customer、https-enabled = trueがあります。結果はログイン画面ではありません。 – mrovnanik

+0

最後のケースでは(https-enabled = true)、moquiログのエラーは次のように表示されます: "[[error、NotFound]]の一部であるlocation [component://webroot/screen/webroot.xml]画面[コンポーネント://webroot/screen/webroot.xml]の下に暗号化された/安全な接続が必要ですが、要求は安全ではなく、セキュアにリダイレクトを送信します。 – mrovnanik

答えて

0

ベースコンポーネントのデフォルトWebルートは、/にURLへのマッピングです。 CSS、JSなどのようなリソースのすべては、プロキシが

ProxyPass /customer http://172.17.0.4:8080 

がjsの実際の場所はまだ

/lib/jquery/jquery-ui.min.css 

ない

/customer/lib/jquery/jquery-ui.min.css 

であるのでけれども、URLを構築するために、 "/" を使用していますそれを動作させるためには、リバースプロキシはより面倒なロケーションproxy_pass設定を必要とします。

したがって、追加のパスを使用してWebルートをプロキシすることは推奨されません。

+0

proxyPassディレクティブは、着信要求を指定されたアプリケーション(この場合は、提供されたIP上の組み込みモードのJetty)にルーティングする目的で使用されます。これは、リダイレクトの意味で正しく動作するようです。私がHTMLコードをチェックアウトすると(間違って表示されたリグイン画面の場合)、唯一の問題は追加/顧客ではなく、アプリケーションがhttpで返信したということです。そして、httpsではありません。 – mrovnanik

+0

私が学んだことから、デフォルトのJettyコンテナは8080上でhttpポートを実行しています。しかし、安全であると見なされるためにはhttps上で動作している必要があります。それは、ログが私に言うことです。 Winstoneの時代には、デフォルトで閉じられていたhttpsポートを開くコマンドラインパラメータ--httpsPortがありました。桟橋では、私はそれをする方法を考え出していない。私は間違っているかもしれませんが、これは今私がそれを見る方法です。 – mrovnanik

+0

私はこの記事をチュートリアルとして使いました。サンプル・ケースのproxyPassとproxyPassReverseは、このリンクの背後にあるテキストでさらに確認してください。https://oracle-base.com/articles/misc/apache-reverse-proxy-configuration – mrovnanik

関連する問題