こんにちは、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認証については、色々ぐぐって学習中なのですが、この問題に関してはどこから考えたらいいのか見当もつかなくなってきております。
何か少しのヒントでもあればご助力頂けると大変助かります。
よろしくお願いいたします。
またここまで読んでいただきありがとうございました。
あなたの回答
tips
プレビュー