[Pound2.8] Syslog設定とWebDAVサーバへの振り分け

リバースプロキシ(Pound)Pound,Syslog,WebDAV

はじめに

PoundでSyslog設定を行いアクセスログを取得できるようにします。
また、WebDAVサーバをバックエンドサーバに配置しFQDNベースで振り分けします。

Syslog設定

Syslogを導入するにあたり、rsyslogをインストールします。Poundはそのrsyslogにログを出力します。

rsyslogのインストールと設定

まずはrsyslogのインストールをします。(CentOS8を使用しています。)

# dnf -y install rsyslog

続いてファシリティ設定を行います。当方の環境ではlocal5を指定しました。

# vi /etc/rsyslog.conf

# Save boot messages also to boot.log
local5.*                                                /var/log/pound.log     #本行を追加

設定の反映をします。

# systemctl restart rsyslog

rsyslogの設定は以上です。

PoundのSyslog設定

Poundのログ設定は簡単です。基本的に「LogFacility」と「LogLevel」を設定するのみです。

「LogFacilty」はrsyslogで設定したLocal値を設定します。

次に「LogLevel」を指定します。数字によってログ出力の内容が変わりますが当方は『5』としました。

# vi /etc/pound.cfg
<省略>
User "pound"
Group "pound"
Control "/var/lib/pound/pound.cfg"
Alive 30
LogFacility local5          #設定追加
LogLevel 5                  #設定追加
<省略>

Syslogの動作確認

対象のサイトにアクセスし、tail等でログが出力されていることを確認します。

# tail -f /var/log/pound.log
<省略>
Dec 20 15:28:30 centos8lb-01 pound[21087]: www.lab-infra.com 61.26.65.179 - - [20/Dec/2020:15:28:29 +0900] "GET / HTTP/1.1" 200 31998 "https://www.lab-infra.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36" (- -> 192.168.201.21:8080) 0.167 sec
Dec 20 15:28:30 centos8lb-01 pound[21087]: www.lab-infra.com 61.26.65.179 - - [20/Dec/2020:15:28:30 +0900] "GET /wp-content/themes/luxech/luxech.js?v=1608445709 HTTP/1.1" 200 1106 "https://www.lab-infra.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36" (- -> 192.168.201.21:8080) 0.001 sec

Poundの「LogLevel」について

なお、各「LogLevel」の出力内容と、サンプルログは下記となります。
(本ブログサイトにアクセスした際のログです。)

0=ログ出力なし
1=標準ログ
2=拡張ログ(バックエンドサーバを表示)
3=Apacheのようなログ
4="3″と同様ですがホスト名が表示されません
5="3″と同様ですが追加でバックエンドサーバを表示します

「LogLevel 1」
Dec 20 15:22:29 centos8lb-01 pound[20538]: 61.26.65.179 GET / HTTP/1.1 - HTTP/1.1 200 OK
Dec 20 15:22:30 centos8lb-01 pound[20538]: 61.26.65.179 GET /wp-content/themes/luxech/luxech.js?v=1608445349 HTTP/1.1 - HTTP/1.1 200 OK

「LogLevel 2」
Dec 20 15:23:37 centos8lb-01 pound[20676]: 61.26.65.179 GET / HTTP/1.1 - HTTP/1.1 200 OK (www.lab-infra.com/- -> 192.168.201.21:8080) 0.126 sec
Dec 20 15:23:37 centos8lb-01 pound[20676]: 61.26.65.179 GET /wp-content/themes/luxech/luxech.js?v=1608445417 HTTP/1.1 - HTTP/1.1 200 OK (www.lab-infra.com/- -> 192.168.201.21:8080) 0.001 sec

「LogLevel 3」
Dec 20 15:24:00 centos8lb-01 pound[20813]: www.lab-infra.com 61.26.65.179 - - [20/Dec/2020:15:24:00 +0900] "GET / HTTP/1.1" 200 31998 "https://www.lab-infra.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36"
Dec 20 15:24:01 centos8lb-01 pound[20813]: www.lab-infra.com 61.26.65.179 - - [20/Dec/2020:15:24:01 +0900] "GET /wp-content/themes/luxech/luxech.js?v=1608445440 HTTP/1.1" 200 1106 "https://www.lab-infra.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36"

「LogLevel 4」
Dec 20 15:24:24 centos8lb-01 pound[20950]: 61.26.65.179 - - [20/Dec/2020:15:24:24 +0900] "GET / HTTP/1.1" 200 31998 "https://www.lab-infra.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36"
Dec 20 15:24:24 centos8lb-01 pound[20950]: 61.26.65.179 - - [20/Dec/2020:15:24:24 +0900] "GET /wp-content/themes/luxech/luxech.js?v=1608445464 HTTP/1.1" 200 1106 "https://www.lab-infra.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36"

「LogLevel 5」
Dec 20 15:24:54 centos8lb-01 pound[21087]: www.lab-infra.com 61.26.65.179 - - [20/Dec/2020:15:24:54 +0900] "GET / HTTP/1.1" 200 31999 "https://www.lab-infra.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36" (- -> 192.168.201.21:8080) 0.112 sec
Dec 20 15:24:54 centos8lb-01 pound[21087]: www.lab-infra.com 61.26.65.179 - - [20/Dec/2020:15:24:54 +0900] "GET /wp-content/themes/luxech/luxech.js?v=1608445493 HTTP/1.1" 200 1106 "https://www.lab-infra.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36" (- -> 192.168.201.21:8080) 0.001 sec

WebDAVサーバの設定

構成

CentOS8でPoundをリバースプロキシとして動作させています。バックエンドにはWebサーバWebDAVサーバ混在する環境となります。ブロードバンドルータのWAN側にはグローバルIPを一つしか持たないためFQDNベースで振り分けをします。FQDNの前提として『www.lab-infra.com』と『lab-infra.com』はAレコードで名前解決ができることとします。

FQDNベースの振り分けですが、『www.lab-infra.com:443』でリクエストが行われた場合はWebサーバへ転送します。『lab-infra.com:443』でリクエストが行われた場合はWebDAVサーバへ転送するようにします。

Poundの設定

下記、Poundの設定です。

User "pound"
Group "pound"
Control "/var/lib/pound/pound.cfg"
Alive 30
LogFacility local5
LogLevel 5


ListenHTTPS
  Address 192.168.200.12
  Port    443
  Cert    "/etc/pki/tls/certs/www.lab-infra.com.pem"
  AddHeader "X-Forwarded-Proto: https"
  xHTTP 3                             #WebDAVのメソッドをPoundが理解するためにデフォルトの「0」から「3」にする。
End

## WordPress
Service
  HeadRequire "Host:.*www.lab-infra.com"       #Webサーバ向けのFQDN振り分け条件
  BackEnd
    Address 192.168.201.21
    Port    8080
    TimeOut 10
    Priority 5
    Disabled 0
  End
  BackEnd
    Address 192.168.201.22
    Port    8080
    TimeOut 10
    Priority 5
    Disabled 0
  End
  Session
    Type    COOKIE
    ID      "PHPSESSID"
    TTL     120
  End
End
## WebDAV                                        #以下、すべてWebDAVサーバ用の設定
Service
  HeadRequire "Host:.*lab-infra.com"             #WebDAVサーバ向けのFQDN振り分け条件
  URL "/QNAP-STR/webdav/"                        #今後ディレクトリ毎にサービスを分割するかもしれないのでパスも振り分け条件に加える
  BackEnd
    Address 192.168.0.15
    Port    10080
    TimeOut 30
  End
End

動作確認

当方はWebDAVクライアントソフトにWindowsのWinSCPを使っています。WinSCPの設定は下記のとおりです。

WinSCPでWebDAVサーバのディレクトリを指定する場合は、上記の画面の『編集(E)→設定(D)…』を押し、下の画面の箇所で設定します。
今回、Poundの設定でURLの振り分け条件『URL “/QNAP-STR/webdav/"』を設定しているので、本設定を実施しないとWebDAVサーバへ接続できません。

下記の通り正常にWebDAVサーバへ接続できました。

以上、PoundでSyslogを設定する方法、及びバックエンドサーバにWebDAVサーバを設定する方法についてでした。