[cloudstack-users:0395] Re: 【質問】ロードバランサ配下のvmのアクセスログ

"小林 良太郎" kobayashi @ mec-jp.com
2014年 8月 25日 (月) 12:11:43 JST


中谷さん

小林です。
有難う御座います。ブログも拝見しました。

結論から言うと、
「GUIから新規にネットワークオファリングを作成して使ってみる。」
で、X-Forwarded-Forを取得できました!

特に指定しなくても、デフォルトでhttpモードになるようです。


ご助言頂き本当に有難う御座いました。

以下詳細です。

<詳細>

デフォで用意されているネットワークオファリングの
keep_alive_enabledの値は全てtrueでした。

+------------------------------------------------------------+--------------------+
| name                                                       | keep_alive_enabled |
+------------------------------------------------------------+--------------------+
| System-Public-Network                                      |                  1 |
| System-Management-Network                                  |                  1 |
| System-Control-Network                                     |                  1 |
| System-Storage-Network                                     |                  1 |
| System-Private-Gateway-Network-Offering                    |                  1 |
| DefaultSharedNetworkOfferingWithSGService                  |                  1 |
| DefaultSharedNetworkOffering                               |                  1 |
| DefaultIsolatedNetworkOfferingWithSourceNatService         |                  1 |
| DefaultIsolatedNetworkOffering                             |                  1 |
| DefaultSharedNetscalerEIPandELBNetworkOffering             |                  1 |
| DefaultIsolatedNetworkOfferingForVpcNetworks               |                  1 |
| DefaultIsolatedNetworkOfferingForVpcNetworksNoLB           |                  1 |
| QuickCloudNoServices                                       |                  1 |
| DefaultIsolatedNetworkOfferingForVpcNetworksWithInternalLB |                  1 |
+------------------------------------------------------------+--------------------+

GUIから以下の機能を有効にして、ネットワークオファリングを作成しました。

Vpn,UserData,StaticNat,SourceNat,Dhcp,Dns,Lb,Firewall,PortForwarding

作成したネットワークオファリングのkeep_alive_enabledの値は、falseになっていました。

+------------------------------------------------------------+--------------------+
| name                                                       | keep_alive_enabled |
+------------------------------------------------------------+--------------------+
| LB-Created                                                 |                  0 |
+------------------------------------------------------------+--------------------+

作成時のログにもhttpモードが有効になっているのを確認できました。

INFO  [c.c.n.HAProxyConfigurator] (DirectAgent-134:ctx-3a2695b6) Haproxy mode http enabled

以上

giraffe.forest @ wh.commufa.jp wrote:
> 自己レスです。何通も失礼します。
> 
> ただ,4.3のAPIにもHAProxyのmodeにかかわるパラメータがありますね。
> 
> http://cloudstack.apache.org/docs/api/apidocs-4.3/root_admin/createNetworkOffering.html
> 
>  createNetworkOffering
>   keepaliveenabled
> 
> http://cloudstack.apache.org/docs/api/apidocs-4.3/root_admin/updateNetworkOffering.html
> 
>  updateNetworkOffering
>   keepaliveenabled
> 
> こいつのデフォルト値はfalseと書いてあるので
> 明示的にtrueにしなれば少なくとも80はmode httpで動いてもよさそうなもので
> すね。
> 
> ネットワークオファリングは初期登録されている
> DefaultIsolatedNetworkOfferingWithSourceNatService
> を使用していますか?
> 
> もしかしたら
> ・新規にネットワークオファリングを作成して使ってみる。
> ・APIでネットワークオファリングを作成し
>  keepaliveenabledをfalseと明示的に指定してみる。
> とかで挙動がかわるかもしれません。
> 
> ※最終的に
>  データベースのcloud.network_offeringsテーブルの
>  対象ネットワークオファリングについてkeep_alive_enabled
>  が0ならfalse 1ならtrueになります。
>  0ならいいのですが。
> 
> 手元に4.3の環境がないので確認できません。
> 
> 
> 以上
> 
> ----- Original Message -----
> 送信者: giraffe.forest @ wh.commufa.jp
> 送信日時: 2014年08月23日(土) 17:13:23
> 
> > ※iphoneで見ると文字化けするかもしれないので再送しています。
> > 
> > 小林さん
> > 
> > こんにちは。中谷と申します。
> > 
> > Apache CloudStack 4.4.0かつ
> > ロードバランスのパブリックポートが80の場合は
> > HAProxyのlisten定義がhttp modeで設定されX-Forwarded-Forが取得できると
>> > います。 
> > 
> > この場合は
> > 仮想ルータが以下のように設定されます。
> > ---------------------------
> > /etc/haproxy/haproxy.cfg
> > 
> >  :
> > defaults
> >  :
> >         mode    tcp
> >  :
> > listen 10_0_1_34-80 10.0.1.34:80
> >         balance roundrobin
> >         server 10_0_1_34-80_0 10.1.1.15:80 check
> >         mode http
> >         option httpclose
> > ---------------------------
> > 
> > Apache CloudStack 4.3.0(少なくともrpm版は)だと
> > listenの定義でmode httpが設定されないようなので
> > defaultsのmode tcpが有効になり
> > X-Forwarded-Forの取得ができないと思います。
> > 
> > 自分も挙動に興味があったので
> > ブログに詳しく書いてみました。
> > よろしかったら一度見てください。
> > ( ´ ▽ ` )ノ
> > 
> > http://giraffeforestg.blog.fc2.com/blog-entry-176.html
> > 
> > 以上
> > 
> > ----- Original Message -----
> > 送信者: "小林 良太郎" <kobayashi @ mec-jp.com>
> > 送信日時: 2014年08月21日(木) 10:59:47
> > 
> > > いつもお世話になります。
> > > 小林と申します。
> > > 
> > > 負荷分散機能を使用しているときのnginxのアクセスログについて質問があ
>> > ます。
> > > 
> > > 現在、以下の環境においてcloudstackの負荷分散を使用しています。
> > > 配下にnginxを利用したWEBサーバ(HTTP)を2台置いています。
> > > 
> > > <環境>
> > > ネットワーク:Advanced
> > > CloudStackのバージョン:4.3.0
> > > ホストのバージョン:XenServer6.2.1
> > > 
> > > <質問>
> > > nginxのアクセスログを見ると、送信元IPがロードバランサのIPになってい
>> > す。
> > > X-Forwarded-Forをログに出力させても、何も出てきません。("-"になって
>> > ます。)
> > > 
> > > 調べてみると、CitrixSupportにHTTPSですが、似たような事例がありました。
> > > http://support.citrix.com/article/CTX138262
> > > コレを見ると、HA ProxyがHTTPモードではなくTCPモードで動いているので、
> > > X-Forwardedヘッダには何も設定されないようです。
> > > 
> > > 解決方法として、別ネットワークでロードバランサとしてnginxサーバを作
>> > ように書いてありますが、
> > > ややこしい構成にしたくないので避けたいです。
> > > 
> > > 解決方法やヒントをご存知の方がおりましたら
> > > ご教示下さい。
> > > 
> > > 以上、宜しくお願い致します。
> > > _______________________________________________
> > > users mailing list
> > > users @ cloudstack.jp
> > > http://ml.cloudstack.jp/mailman/listinfo/users
> > > 
> > 
> > 
> > _______________________________________________
> > users mailing list
> > users @ cloudstack.jp
> > http://ml.cloudstack.jp/mailman/listinfo/users
> > 
> 



users メーリングリストの案内