社内で wget を使ってるときは外部に接続するために プロキシの設定をしてあるのですが、 社内のサーバに接続するときなど プロキシを経由してほしくないってことがあります。
$ wget --no-proxy http://.....
こんな感じでプロキシを使用しないオプションをつけます。
nginx1.2.0 がリリースされてたので入れてみます。
[参考]
高速なHTTPサーバー「nginx 1.2」がリリースされる - SourceForge.JP Magazine : オープンソースの話題満載
ソースをダウンロードしてコンパイル&インストール。
$ tar zxvf nginx-1.2.0.tar.gz $ cd nginx-1.2.0/ $ ./configure --prefix=/usr/local/nginx-1.2.0 $ make $ make install
ついでに strip 。
$ sudo strip /usr/local/nginx-1.2.0/sbin/nginx
80 番ポートは使ってるので 変更します。
$ sudo vi /usr/local/nginx-1.2.0/conf/nginx.conf
server {
#listen 80;
listen 8012;
server_name localhost;
起動します。
$ sudo /usr/local/nginx-1.2.0/sbin/nginx
ちゃんとポートが LISTEN されています。
$ netstat -ant | grep 8012
tcp 0 0 0.0.0.0:8012 0.0.0.0:* LISTEN
いつも Apache のログは logrotate でローテーションさせてるんですが PostgreSQL のように単体?でできないかなと思っていたら ちゃんとそういうコマンドがあるようです。
さっそく設定してみます。 Ubuntu10.04 では rotatelogs は /usr/sbin に入っていました。
$ which rotatelogs
/usr/sbin/rotatelogs
自分でコンパイルした場合は prefix の指定配下の bin に入ります。 私は Apache2.4.2 を /usr/local/apache242 に入れたので rotatelogs は /usr/local/apache242/bin になります。
$ vi /usr/local/apache242/conf/httpd.conf
CustomLog の設定を参考サイトに合わせて変更します。
【変更前】 CustomLog "logs/access_log" common ↓ 【変更後】 CustomLog "|/usr/local/apache242/bin/rotatelogs logs/access_log.%Y%m%d 86400 540" common
Apache を再起動。
$ sudo /usr/local/apache242/bin/apachectl restart
アクセスするとログが出力されます。
$ ls -1 /usr/local/apache242/logs access_log access_log.20120428 error_log httpd.pid
これで Apache だけでログのローテーションが設定できるようになりました。
Apache2.4.2 が出たので、インストールついでに mod_sed を試してみたいと思います。
ダウンロードしたソースをコンパイルするわけですが APR を入れていないと configure でエラーになります。
$ ./configure --prefix=/usr/local/apache242
checking for chosen layout... Apache
checking for working mkdir -p... yes
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking target system type... x86_64-unknown-linux-gnu
Configuring Apache Portable Runtime library ...
checking for APR... no
configure: error: APR not found. Please read the documentation.
下記のページを参考に apr を入れてコンパイルします。
[参考]
Apache 2.4 で mod_lua を使ってみる
/usr/local/apache242 に入れます。
$ ./configure --prefix=/usr/local/apache242 \ --with-apr=/usr/local/apr-httpd/ \ --with-apr-util=/usr/local/apr-util-httpd/ $ make $ sudo make install
最後に mod_sed のモジュールを有効にします。
$ vi /usr/local/apache242/conf/httpd.conf
コメントを外します。
#LoadModule sed_module modules/mod_sed.so
これでインストールは終了です。
次に実際の動作のための mod_sed の設定をします。 mod_sed は、入力と出力の内容に対して sed コマンドを使うように置換することができます。
入力と出力は使うディレクティブが違うだけなので 簡単に試せる出力で使ってみます。
次のように設定します。 AddOutputFilter で、拡張子 html に対して Sed フィルタを指定しています。
<IfModule sed_module>
<Directory "/usr/local/apache242/htdocs/sed">
AddOutputFilter Sed html
OutputSed "s/monday/MON/g"
OutputSed "s/sunday/SUN/g"
</Directory>
</IfModule>
/usr/local/apache242/htdocs/sed にある .html のファイルは "monday","sunday" を出力すると "MON","SUN" に置換されます。
試してみます。次のファイルを用意。
$ cat /usr/local/apache242/htdocs/sed/test.html
<body>
sunday monday tuesday wednesday thursday friday saturday
</body>
アクセスします。
$ wget -q --no-proxy -O - http://localhost/sed/test.html
<body>
SUN MON tuesday wednesday thursday friday saturday
</body>
sunday monday が SUN MON に変わりました。