2009年8月15日土曜日

FreeBSD7/FreeBSD6 Apache2.2 ForwardProxyのインストール(install)設定

この記事は
FreeBSD7.1
FreeBSD6.2
Apache2.2/Portsインストール版
Apache2.2/tarballインストール版
フォワードプロキシー/プロクシ(Foword Proxy)のインストール
について書かれています

■Apache2.2のフォワードプロキシーのインストール方法・設定方法
PortsインストールされたApache2.2

現在ではmod_proxyは最初からインストールされていないようなので、
自分で追加しなければなりません。

#cd /usr/ports/www/apache22/
#make deinstall
#make clean
#make config

[X] PROXY Enable mod_proxy
[X] PROXY_FTP Enable mod_proxy_ftp
[X] PROXY_HTTP Enable mod_proxy_http

#make install

プロキシのポート番号に8080を使うとき
[httpd.conf]
------------------------
Listen 8080

LoadModule proxy_module libexec/apache22/mod_proxy.so
LoadModule proxy_http_module libexec/apache22/mod_proxy_http.so
LoadModule proxy_ftp_module libexec/apache22/mod_proxy_ftp.so

ProxyRequests on
ProxyVia on

<Proxy * >
Order deny,allow
Deny from all
Allow from 127.0.0.1
Allow from 192.168.0.0/24
</Proxy>
------------------------
デフォルトではポート番号に80を使います。


■Apache2.2のフォワードプロキシーのインストール方法・設定方法
tarballでインストールされたApache2.2


Apache2の現在のビルトインモジュールの確認
# /usr/local/apache2/bin/httpd -l
[21:23:21 root ~]# /usr/local/apache2/bin/httpd -l
Compiled in modules:
core.c
mod_authn_file.c
mod_authn_default.c
mod_authz_host.c
mod_authz_groupfile.c
mod_authz_user.c
mod_authz_default.c
mod_auth_basic.c
mod_include.c
mod_filter.c
mod_log_config.c
mod_env.c
mod_setenvif.c
prefork.c
http_core.c
mod_mime.c
mod_status.c
mod_autoindex.c
mod_asis.c
mod_cgi.c
mod_negotiation.c
mod_dir.c
mod_actions.c
mod_userdir.c
mod_alias.c
mod_so.c


apacheのコンパイルオプションの確認

以前のコンパイルしたソース中のconfig.niceを参照する
[config.nice]
#! /bin/sh
#
# Created by configure

"./configure" \
"--enable-so" \
"$@"

apache1.3系なら config.status です

ソースがなければ
#cd /usr/local/apache2/bin
#httpd -V
Server version: Apache/2.2.4 (Unix)
Server built: Aug 3 2007 22:33:04
Server's Module Magic Number: 20051115:4
Server loaded: APR 1.2.8, APR-Util 1.2.8
Compiled using: APR 1.2.8, APR-Util 1.2.8
Architecture: 32-bit
Server MPM: Prefork
threaded: no
forked: yes (variable process count)
Server compiled with....
-D APACHE_MPM_DIR="server/mpm/prefork"
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
-D APR_USE_FLOCK_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D DYNAMIC_MODULE_LIMIT=128
-D HTTPD_ROOT="/usr/local/apache2"
-D SUEXEC_BIN="/usr/local/apache2/bin/suexec"
-D DEFAULT_PIDLOG="logs/httpd.pid"
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
-D DEFAULT_LOCKFILE="logs/accept.lock"
-D DEFAULT_ERRORLOG="logs/error_log"
-D AP_TYPES_CONFIG_FILE="conf/mime.types"
-D SERVER_CONFIG_FILE="conf/httpd.conf"

で確認できます。が、あまり参考にならない。。。


#./configure --enable-so --enable-proxy --enable-proxy-http
#make
#make install

コンパイル結果の確認

#/usr/local/apache2/bin/httpd -l
Compiled in modules:
core.c
mod_authn_file.c
mod_authn_default.c
mod_authz_host.c
mod_authz_groupfile.c
mod_authz_user.c
mod_authz_default.c
mod_auth_basic.c
mod_include.c
mod_filter.c
mod_log_config.c
mod_env.c
mod_setenvif.c
mod_version.c
mod_proxy.c
mod_proxy_connect.c
mod_proxy_ftp.c
mod_proxy_http.c
mod_proxy_ajp.c
mod_proxy_balancer.c
prefork.c
http_core.c
mod_mime.c
mod_status.c
mod_autoindex.c
mod_asis.c
mod_cgi.c
mod_negotiation.c
mod_dir.c
mod_actions.c
mod_userdir.c
mod_alias.c
mod_so.c


mod_proxy
mod_proxy_http
が追加されていればOKです。

続いてhttpd.confを編集します。

[httpd.conf]
------------------------
Listen 8080

 :

ProxyRequests on
ProxyVia on

<Proxy *>
Order deny,allow
Deny from all
Allow from 127.0.0.1
Allow from 192.168.0.0/24
</Proxy>
------------------------

Allow from <接続を許可するクライアントのIPアドレス>
を記述します。
設定を間違えると誰でもこのProxyをつかえるようになり危険です。

tarballからインストールしたこのバージョンでは、
ビルトインモジュールとしてコンパイルされるため
LoadModuleディレクティブは不要です。

■その他覚書

Apache2.2.4ではmod_proxyはconfigureしても追加されませんでした。
Apache2.2.13にバージョンアップしてところ正常にmod_proxyが追加されました。

.

2009年8月4日火曜日

ディスプレイのカラー調整

私のPCのディスプレイは、液晶ディスプレイ3台のマルチディスプレイ構成で使っています。
友人や職場の人にこの話をしても何が便利なのかとよく聞かれます。
でもやっぱり使い始めると手放せない構成です。
何が便利なのか。。。
プログラムをするにしてもサーバーを管理するにしても、ネットで何かPCパーツを探すにしても、資料表示用画面、作業用画面、作業結果画面、すべてが見えた状態で作業をするととても効率がいいのです。

プログラムの開発なら、
左の液晶ディスプレイにRubyのプログラム言語のマニュアルとネットで検索してきたサンプルコード、
真中の液晶ディスプレイにエディタとサーバーにつないでいるシェル画面
右側の液晶ディスプレイにインターネットエクスプローラーでその結果を表示する

用途ごとに画面を分けて表示できるので、マルチディスプレイにすることでウィンドウを探したり、並べ替えたりといった煩雑だった作業から一度に開放されます。


まあ。それはさておき、
ディスプレイが複数あると、色あわせをしなければなんともみっともないことになります。
そこで、ディスプレイの調整をするのですが、これが意外と難しい。
液晶だと画面を見ている角度が少し変わっただけで色味が変わる。椅子にまっすぐ座るかもたれかかって座るかでも青みがかかったり、黄色がかったりするので、厳密な調整はできません。

明るさ、コントラストの調整から色の調整まで行わなければなりませんが、この調整用データーからして探しにくい。大雑把な調整用パターンはあるのですが、もっと細かい調整用パターンがほしい。

ということでで自分で作ってみました。


■コントラスト・明るさ調整用パターン
すべての階調がつぶれないように調整します。
クリックすると拡大されます。

PNG画像




■色調整
PNG画像