{{tag>cacti nginx}} # cacti を reverse proxy の後ろで運用する cacti を reverse proxy の後ろで運用する場合のちょっとしたコツです。 ## reverse proxy が /cacti/ でリクエストを受け付ける場合 こんな設定で動作させる場合には、特に問題なく動きます。 ``` location /cacti/ { proxy_pass http://back.end.ip.addr/cacti/; } ``` ## reverse proxy が /cacti/ 以外の名前でリクエストを受け付ける場合 基本的に reverse proxy 上のパスとバックエンドの web サーバーのパスを揃えてあげる必要があります。例えば reverse proxy が `/saboten/` で受けて、バックエンドの `/cacti/` に proxy するような…… ``` location /saboten/ { proxy_pass http://back.end.ip.addr/cacti/; } ``` こんな reverse proxy の設定にすると、現状(v1.1.0)の cacti ではうまく動作しなくなります((cacti ソースの中で、何か所か php の `$_SERVER{'REQUEST_URI'}` を javascript の画面リフレッシュ用のパラメータとして設定しているため、ブラウザーが /cacti/some.php をリクエストしてしまいます。))。 こういう場合は、バックエンド側で `/saboten/` のエイリアスを設定してあげます。 ``` # nginx の場合 server { listen back.end.ip.addr; location /saboten/ { alias /real/path/to/cacti/; } } # apache2 の場合 Listen back.end.ip.addr Alias /saboten "/real/path/to/cacti" ``` その上で reverse proxy とバックエンドサーバーで共通のパスを /real/path/to/cacti/include/config.php の `$url_path` に設定します。 ``` $url_path = '/saboten/'; ```