質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

Q&A

0回答

1824閲覧

ApacheでREMOTE_USERを渡しつつ、keepaliveをOFFにしたい

umegon

総合スコア24

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

0グッド

0クリップ

投稿2018/12/21 11:31

編集2022/01/12 10:55

こんにちは、Redmineでアプリケーションを構築していてApacheの設定が上手くできずに困っております。

長いですが、呼んでいただけると嬉しいです。
また最終的にご相談させて頂きたいことは一番したに書かせて頂いております。

Apache/2.4.37 (Win32)を使用しております。。

▽根本問題
Redmineのjavascript(恐らくajax?)で動いているファイル添付の機能が、画面ロードして数秒後に添付するとerrorとなる。

▽根本問題の原因
完全に理解できているわけではないのですが、ApacheのKeep Aliveが5秒に設定してあることです。
(正確にはこの後記載するAD認証も組み合わさり発生している模様です。)

〇添付できるパターン1
画面ロード完了
↕ 約5秒間
添付可能

〇添付できるパターン2
画面ロード完了
↕約5秒間
添付処理ERROR
↕約5秒間
添付可能

▽解決するために考えたこと
1、KeepAliveのTimeを伸ばす。
→例えば1時間KeepAliveが続くように設定すると画面は解決しますが、プロセスがずっとつかみっぱなしになると認識しているので現実的ではないと考えます。かといって2、3分などにしたところで、投稿内容を記載している間に2,3分経過してしまっては意味ないと思い、このプランは無いかなと思いました。

2、KeepAliveをOffにしてしまう。
→KeepAliveをOFFにしたら、レスポンスが少々悪くなってしまうが、この問題は解決できると思いました。
→しかし401エラーが発生し、一切画面にログインできなくなってしまいました。
→こちらは、Apacheで別で設定しているAD認証の為の設定を外したら、起こらなくなったのでApacheに記載されているAD認証の結果をREMOTE_USERに渡して疑似AD認証を実現している部分と相性が悪そうということが分かりました。
→ここまできて、errorを無くすためにはKeep AliveをOFFにしないといけなさそうだが、
OFFにするとAD認証ができなくなってしまうという状態になり、どうしたら良いものかと頭を悩ませております。

httpdconf

1#▽KeepAlive設定 2KeepAlive off 3KeepAliveTimeout 5 4 5HostNameLookups off 6 7NameVirtualHost *:80 8 9<VirtualHost *:80> 10 #対象HOST名 11 ServerName "実際にはホスト名" 12 #Root 13 DocumentRoot "実際にはソースのルートフォルダ" 14 #access log 15 LogFormat "%h %l %u %t \"%r\" %>s %b" faqcommon 16 17 ~その他いろいろログの設定(省略) 18 19 #AD設定 20 <Location /> 21 AuthName "実際にはシステム名" 22 AuthType SSPI 23 SSPIAuth On 24 SSPIAuthoritative On 25 SSPIDomain kmjp 26 SSPIOfferSSPI On 27 SSPIOfferBasic On 28 SSPIBasicPreferred Off 29 30 SSPIOmitDomain On 31 SSPIUsernameCase lower 32 #AuthUserFile C:.htpasswd 33 Require valid-user 34 35 RewriteEngine on 36 RewriteCond %{REMOTE_USER} (.*) 37 RewriteRule .* - [E=X_REMOTE_USER:%1] 38 RequestHeader set X-Forwarded-User %{X_REMOTE_USER}e 39 </Location> 40 41 #リダイレクト設定 42 RewriteRule /$ /projects [R] 43 44 #ロードバランス設定 45 ProxyPass / balancer://mycluster/ lbmethod=byrequests timeout=1 46 <Proxy balancer://mycluster/> 47 BalancerMember http://127.0.0.1:8080 loadfactor=1 48 BalancerMember http://127.0.0.1:8081 loadfactor=1 49 #BalancerMember http://127.0.0.1:8082 loadfactor=1 50 </Proxy> 51 52 <Location /balancer-manager> 53 SetHandler balancer-manager 54 Require host none 55 Require ip 127 56 Require ip 10 57 </Location> 58 59</VirtualHost> 60 61同じようなバーチャルホスト設定がシステム分。。。記載してあります。 62

〇ApahceからrubyへUSERを渡すために参考にしたところ。
リバースプロキシで認証したREMOTE_USERを受け側のapacheに渡す

〇ApacheでAD認証するために参考にしたところ
Apache2.4(Windows版x64)にWindowsドメイン認証を利用して、シングルサインインを実装する

▽ご相談したいこと
個人的にはKeepAvileが有効な時は初めにリクエストがサーバーに届いた時のヘッダーがそのまま使われ続けていたが、KeepAliveをOFFにすると、恐らくそれが使われなくなってしまって、認証が通らなくなってしまって401が出てしまっているのかな?と考えてはいるのですが、でもそうであればAD認証の機能をがっつり外した時に、ADログインは出来ませんがそもそも画面にアクセスできるのが謎で、、、詰まっております。

ApacheやAD認証については、色々ぐぐって学習中なのですが、この問題に関してはどこから考えたらいいのか見当もつかなくなってきております。
何か少しのヒントでもあればご助力頂けると大変助かります。

よろしくお願いいたします。
またここまで読んでいただきありがとうございました。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問