問題タブ [ajp]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
apache - ProxyPass、ProxyReverseとAJP
現在、Javaサーブレットを提供するためのTomcat +ApacheHTTPサーバー設定があります。
クライアントのIPアドレスを知る必要があることを除いて、これはすべて問題myservice
ありません。クライアントのIPアドレスは、プロキシのために常に127.0.0.1であることがわかります。実際のIPアドレスを取得するための解決策はありますか?AJPはオプションですか?
jboss - Apache error_log の 503 エラーの原因と修正方法: "Broken pipe: ajp_ilink_send(): send failed"
JBoss で実行されているサーブレットで断続的な問題が発生し、Apache が mod_proxy_ajp.so を介してすべてのリクエストを転送します。
REST 要求の場合、Apache から 503 エラーが発生することがあります。これが発生すると、Apache error_log に次のように記録されます。
数回失敗した後、再び機能し始めます。
私はいくつかをグーグルで検索しましたが、問題に遭遇したのは私だけではないことがわかりました。私が見つけた唯一の解決策は、JBoss の後に Apache が開始されていることを確認することです (JBoss の再起動後に Apache を再起動します)。
この問題の奇妙な点は、この JBoss で実行されている他のサーブレットがあり、そこに問題がないことです。
サーブレットは CXF JAX-RS ベースです。
アパッチは 2.2.6 です。
ajp - AJPは十分に安全ですか?
ホスティングサービスでjavarichfaces/hibernateアプリをホストする必要があります。セキュリティ部門の要件として、そのアプリケーションから内部データベースへの接続を確立することはできません。提案された解決策の1つは、内部Webサービスを作成することでしたが、すべてのデータベース層を変更するのは困難です。代わりにAJPを使いたいです。それは十分に安全ですか?
[編集]これを尋ねると、Apache httpdがhttpsを提供し、AJPをラップして内部サーバー内に移動することで、チャネルを監視できますか(プレーンテキスト)?プロトコル自体のドキュメントが見つかりません。
apache - https による Apache ウェブサーバーと JBoss AJP 接続
JBoss で実行される Java EE アプリケーションをホストしています。セキュリティ上の理由から、インターネット上で利用できるはずのこのアプリケーションは、フロントエンドの Apache サーバーで保護されています。これを可能にするために AJP を使用しています。
これは、http 経由でアプリケーションにアクセスする場合に正常に機能します。https でこれを実行しようとすると、うまくいきません。Java EE アプリケーションにアクセスすると、404 エラーが発生します。SSL 証明書を Apache サーバーに配置しました。
tomcat - TomcatでAJPパケットサイズを設定するには?
AJP で maxPacketSize を設定するには、こちらの手順に従いました...
ドキュメントには、「Tomcat 側で AJP コネクタの packetSize 属性も変更する必要があります。属性 packetSize は、Tomcat 5.5.20+ および 6.0.2+ でのみ使用できます」と記載されています。
私はそれを変更する方法がわかりません!
このドキュメントでは、Tomcat での変更について説明していますが、実際に変更する必要がある場所 (プロパティ ファイル/構成ファイルなど) がわかりません。
誰でも私に手がかりを教えてもらえますか?
ありがとう!
apache - Tomcatキープアライブの混乱へのApacheプロキシ
Tomcat 6 サーバーの前に Apache 2.2 サーバーがあります。apache で mod_proxy_ajp を使用して、リクエストを tomcat にプロキシします。かなり標準的なセットアップ。
ブラウザのキープアライブ接続を無効にする必要がある場合、どうすればよいですか?
キープアライブ http リクエストを無効にする必要があるのは、一部のユーザーが非アクティブなキープアライブ接続をドロップし、ランダムに問題を引き起こす可能性があるファイアウォールを持っていると思われるためです。
apache と tomcat の両方に、さまざまな「キープ アライブ」の設定があります。
httpd.conf には「KeepAlive Off」があります(私の場合、違いはないようです)
また、ProxyPass を設定する httpd.conf では、パラメータ「キープアライブ」を使用できますが、これは、Apache と Tomcat の間にプロキシ/ファイアウォールがある場合にのみ役立つはずです。これは、私の場合には存在せず、問題ではありません。 .
Tomcat 自体、http コネクタには「keepAliveTimeout」と「maxKeepAliveRequests」がありますが、これは http コネクタ専用です。
tomcat ajp コネクタにも「keepAliveTimeout」がありますが、これは apache からの ajp リクエスト用であり、ブラウザから apache への実際の HTTP リクエストにフローするかどうかは不明です。
さらに、HTTP1.0 と HTTP1.1 の違いもあります。
混乱します....誰か説明してもらえますか?
apache - 環境変数をバックエンドに渡すように mod_proxy_ajp を納得させるにはどうすればよいですか?
mod_proxy
バックエンドと ajp-wsgi アプリ サーバーでApache を使用しようとしていますが、アプリケーション サーバーに変数をAJP
送信していないようです。SetEnv
構成スニペット:
環境変数を Apache 構成からアプリ サーバーに渡すにはどうすればよいですか?
java - AJP(mod_jk)を使用するJBOSSを使用したApacheにより、スレッド数が急増します
アプリケーションをホストするためにJBOSSでApacheを使用しましたが、mod_jkのスレッド処理に関連するいくつかの問題が見つかりました。
当社のWebサイトは、トラフィックの少ないWebサイトに分類され、Webサイトのピークアクティビティ時間中に最大200〜300人の同時ユーザーがいます。トラフィックが増えると(同時ユーザーではなく、サーバーに到着した累積リクエストの観点から)、サーバーはクラッシュしませんでしたが、20分までリクエストを処理できませんでしたが、リクエストの処理を長時間停止しました。JBOSSサーバーコンソールは、1〜1.5 GBを超える十分な空きメモリがあるにもかかわらず、両方のサーバーで350スレッドがビジーであることを示しました(64ビットのJBOSS用に2つのサーバーが使用され、4 GBのRAMがJBOSSに割り当てられました)
問題を確認するために、JBOSSとApache Webコンソールを使用しており、ページが提供されるまでに約4〜5秒かかりますが、スレッドがS状態で数分間表示されていることを確認しました。
スレッドダンプを取得したところ、スレッドはほとんどWAITING状態であり、無期限に待機していることがわかりました。これらのスレッドは、アプリケーションクラスではなく、AJP8009ポートのものでした。
他の誰かがこの問題を取得して何らかの方法で解決した可能性があるため、誰かがこれで私を助けてくれますか?さらに情報が必要な場合は、私に知らせてください。
また、mod_proxyはmod_jkを使用するよりも優れていますか、またはmod__proxyに切り替えると致命的となる可能性のある、mod_proxyに関する他の問題がありますか?
私が使用したバージョンは次のとおりです。
助けてくれてありがとう。
彼ら!!!!最終的に、上記の構成で回避策を見つけました。これはAPRの使用であり、ここで言及されています:http: //community.jboss.org/thread/153737。以下の回答で多くの人が正しく言及しているその問題、すなわちコネクタの問題。以前は、休止状態を構成して応答時間を長くすることで一時的な回避策を作成しました。完全な修正はAPRです。
java - Tomcat の数百の AJP スレッドの原因を特定する
2 台の Tomcat 6.0.20 サーバーを Apache でフロントに配置し、2 台の間で AJP を使用して通信します。次に、Tomcat は JBoss クラスター上の Web サービスを消費します。
今朝、Tomcat マシンの 1 つが、マシンの 8 つのコアのうち 6 つの CPU を 100% 使用していました。JConsole を使用してヒープ ダンプを取得し、次に JVisualVM に接続してプロファイルを取得し、すべての CPU を占有しているものを確認しようとしましたが、これにより Tomcat がクラッシュしました。少なくとも、ヒープ ダンプがありました。
ヒープ ダンプを Eclipse MAT にロードしたところ、java.lang.Thread のインスタンスが 565 個あることがわかりました。これらのいくつかは明らかに完全に合法ですが、大部分は「ajp-6009-XXX」という名前で、XXX は数字です。
私は Eclipse MAT の使い方をかなりよく知っていますが、その説明を見つけることができませんでした。なぜTomcatがこれを行っているのか、またはEclipse MATを使用する理由を見つけるためのヒントを誰かが持っていれば、それはありがたいです!
apache - 内部サーブレット名を別の外部名にマップするAJPプロキシ
apache2を使用して、内部サーブレットURLを外部の完全に異なるURLにマップするTomcatサーバー用のAJPプロキシを設定したいと思います。現在、次の構成を使用しています。
Apache2構成:
external_name
とservlet_name
は異なることに注意してください。
Tomcat 6の構成:
ただし、これは機能しません。ApacheはhttpリクエストをTomcatに転送しているようです。ただし、Tomcatによって返されるURLとリダイレクトは引き続き元のURLを使用しておりservlet_name
、Apacheはそれらをにマップしませんexternal_name
。
これはAJPで可能ですか?そうでない場合は、代わりにプレーンhttpプロキシを使用して実行できますか?