*Pound [#a9fc48f7]

RIGHT:更新日&lastmod(); 

**Make エラー [#ke748236]
Pound-2.5.tgzではMakeでエラーするので、Pound-2.6f.tgzをGetしたら問題なかった

 pound.h:340: error: expected specifier-qualifier-list before ‘LHASH’
 make: *** [pound.o] エラー 1

 $ wget http://www.apsis.ch/pound/Pound-2.6f.tgz

----------

Webサーバのロードバランサ(バックProxyとしても)として利用できる。

[[ここ:http://www.apsis.ch/pound/]]からDownlaodしてくる。

**構成図 [#jef79c3c]

 ---------------                ----------------
 |             |                |              |
 | Pound       |                | Web          |
 | 10.3.1.50   |================| 10.3.1.51    |
 |             |        |       |              |
 |             |        |       |              |
 ---------------        |       ----------------
                        |                       
                        |       ----------------
                        |       |              |
                        |       | Web          |
                        ========| 10.3.1.52    |
                                |              |
                                ----------------


**インストール [#edb2fd70]

 $ tar zxvf Pound-2.1.6.tgz
 $ cd Pound-2.1.6
 $ ./configure --with-ssl=/usr (--with-ssl=ssl_dir OpenSSL home directory)
 (openssl-develも必要)
 $ make
 $ su
 # make install

**設定 [#x906b2cb]

pound-1xと-2xではpound.cfgの書式が異なる。今回は-2xで試してみる。

/usr/local/etc/pound.cfgを編集(作成)

***単純なリバースプロキシの設定(2台のマシンにプライオリティの差をつける) [#o63253a7]

 User        "nobody"  <--起動ユーザの指定
 Group       "nobody"  <--起動グループの指定
 ListenHTTP
   Address 10.3.1.50   <---PoundのIPアドレス
   Port    80          <---Poundの受信ポート
   xHTTP   2           <---WebDAVを通過させるため(WindowsのWebDAVで確認した)
 
   Service
     BackEnd
       Address 10.3.1.51
       Port 80
       Priority 9    <---デフォルトは1 1-9で指定で9がプライオリティが高い
     End
 
     BackEnd
       Address 10.3.1.52
       Port 80
       Priority 1
     End
   End
 End


**設定ファイルの確認 [#fe942fea]

 # /usr/local/sbin/pound -cv
 Config file /usr/local/etc/pound.cfg is OK

**起動 [#oe6d0411]

 #/usr/local/sbin/pound

 # ps ax
 
 15268 ?        S      0:00 /usr/local/sbin/pound
 15269 ?        S      0:00 /usr/local/sbin/pound
 15270 ?        S      0:00 /usr/local/sbin/pound
 15271 ?        S      0:00 /usr/local/sbin/pound
 15272 ?        S      0:00 /usr/local/sbin/pound

/var/log/messagesにlogが出るので起動失敗では確認する


**HTTPS [#m77c490a]

poundでSSL接続させるためにサーバキー、公開キーを作成する。Vineの場合すでにApacheで利用されているのでそれを利用する。

***サーバキー(秘密キー) [#y469ab7a]

 # cp /etc/httpd/conf/ssl.key/server.key server-key.pem

***公開キー(証明書) [#z25761b0]

 # cp /etc/httpd/conf/ssl.crt/server.crt  pound.pem

二つのキーをマージしてpoundでは利用するのでマージする。

 # cat server-key.pem >> pound.pem

**自分でサーバキー(秘密キー)、公開キー(証明書)を作成するとき [#x94d59ea]

***サーバキー(秘密キー) [#ve50484c]

 # openssl genrsa -des3 -out server-key.pem 1024
 Generating RSA private key, 1024 bit long modulus
 .........++++++
 .......++++++
 e is 65537 (0x10001)
 Enter pass phrase for server-key.pem:*****
 Verifying - Enter pass phrase for server-key.pem:*****

***サーバキーのパスワードを聞かれることをなくす [#r7aac94e]

 # openssl rsa -in server-key.pem -days 365 -out server-key.pem
 # openssl rsa -in server-key.pem -out server-key.pem
 Enter pass phrase for server-key.pem:*****
 writing RSA key

***公開キー(証明書) [#p8c98ec8]

# openssl req -new -key server-key.pem -x509 %%-days 365%% -out pound.pem
 # openssl req -new -key server-key.pem -x509 -days 365 -out pound.pem
 You are about to be asked to enter information that will be incorporated
 into your certificate request.
 What you are about to enter is what is called a Distinguished Name or a DN.
 There are quite a few fields but you can leave some blank
 For some fields there will be a default value,
 If you enter '.', the field will be left blank.
 -----
 Country Name (2 letter code) [AU]:JP
 State or Province Name (full name) [Some-State]:Mie Pref
 Locality Name (eg, city) []:Matsusaka
 Organization Name (eg, company) [Internet Widgits Pty Ltd]:MCU
 Organizational Unit Name (eg, section) []:
 Common Name (eg, YOUR name) []:localhost
 Email Address []:student@localhost


二つのキーをマージしてpoundでは利用するのでマージする。

 # cat server-key.pem >> pound.pem

***設定 [#raf34a47]

以下の内容をpound.cfgに追加すると10.3.1.50にssl接続しに来たら10.3.1.51の
ポート80に投げる。

 ListenHTTPS
     Address 10.3.1.50
       Port    443
       Cert    "/usr/local/etc/pound.pem"
       Service
           BackEnd
               Address 10.3.1.51
               Port    80
           End
       End
 End

*** &aname(reservation){設定(指定ディレクトリを指定ホストに転送)}; [#bfffe561]
http://10.3.1.50/51/はhttp://10.3.1.51/51/をアクセスし、http://10.3.1.50/52/はhttp://10.3.1.52/52/をアクセスする。

以下の内容を「単純なリバースプロキシの設定」の前に追加する。 &color(red){Servceはパターンに合ったものから処理し、先に記入されたものが優先される};


  Service
    URL "/51/.*"
    BackEnd
      Address 10.3.1.51
      Port 80
      Priority 1
    End
  End
 
  Service
    URL "/52/.*"
    BackEnd
      Address 10.3.1.52
      Port 80
      Priority 1
    End
  End



**アクセスURLにより異なるマシンへの振り分け [#y146fad3]

アクセスURLを変えてアクセスすると異なるマシンへのアクセスを実現する方法が不明
出来きるのか?

Poundはpound.cfgに記載順に実行されるので、先に[[指定ディレクトリ>#reservation]]に転送する方法で記載し、その後デフォルトの転送さきとして以下の指定をする。

 (指定ディレクトリの内容)
 
  Service
    Redirect "http://10.3.1.50:8080"
  End

**アクセスポートにより振り分け [#x61e0a0b]

アクセスするポートによりサーバとポートを指定する~
192.yyy.yyy.yyy:8088にアクセスすると192.xxx.xxx.xxx:80にフォワード~
ポート8089アクセスすると10.zzz.zzz.zzzz:8080にフォワード~
これで一つのマシンがグローバルでアクセスできたらポート指定で
内部サーバにもアクセス可能。

pound.cfg
 User        "nobody"
 Group       "nobody"
 
 # 8088ポートの転送先アドレスポート指定
 ListenHTTP
   Address 192.yyy.yyy.yyy
   Port    8088
 
   Service
     BackEnd
       Address 192.xxx.xxx.xxx
       Port 80
       Priority 9
     End
   End
 End
 # 8089ポートの転送先アドレスポート指定
 ListenHTTP
   Address 192.yyy.yyy.yyy
   Port    8089
 
   Service
     BackEnd
       Address 10.zzz.zzz.zzz
       Port 8080
       Priority 9
     End
   End
 End


**Logの指定 [#rc378890]
デフォルトではlogは/var/log/messagesに入る。これを/var/log/pound.logに入れるには
syslogを使用して、pound.cfgと/etc/syslog.confに追加する

''pound.cfg''
 User        "nobody"
 Group       "nobody"
 
 LogFacility local5  <--追加(あいているlocal0〜7のあいているところ)
 LogLevel 3   <--追加(0〜4が指定できる [emerg〜warning])

''/etc/syslog.conf''
 # Log anything (except mail) of level info or higher.
 # Don't log private authentication messages!
 *.info;mail.none;authpriv.none;cron.none;local5.none            /var/log/messages
                                          ^^^^^^^^^^^追加:これがないと/var/log/messagesにも記入される
 
 (略)
 
 # Save pound messages to pound.log
 local5.*                                                /var/log/pound.log  <--追加(local5はpound.cfgに合わせる)

syslogdとpoundを再起動

**WebDAVへのSSL通信 (2015年8月設定)[#t894ea83]

poundまでSSL通信を行い、バックのWindowsサーバ上のWebDAVのはhttp通信を行う
ユーザ認証はWebDAVで行う

''この設定でエクスプローラからも動作した。''

              -------------------                       ------------
              |Pound            |                 http  |WebDAV    |
   http /https|                 |192.168.10.78          | http     |
 =============| Comon Name      |=======================|          |
 192.168.55.1 |  pound.ism21.net|         192.168.10.60 |          |
              |                 |                       |          |
              -------------------                       ------------



''pound.cfg''

 User        "nobody"
 Group       "nobody"
 ListenHTTP
  Address 192.168.55.1
  Port    80
 #  Cert    "/usr/local/etc/pound.pem"
  xHTTP   2
 
  Service
    BackEnd
      Address 192.168.10.60
      Port 80
      Priority 9
    End
  End
 End
 
 ListenHTTPS
  Address 192.168.55.1
  Port    443
  Cert    "/usr/local/etc/pound.pem"
 
  xHTTP   2
  Service
    BackEnd
      Address 192.168.10.60
      Port 80
      Priority 9
    End
   End
 End

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS