wget でプロキシを経由しない

社内で wget を使ってるときは外部に接続するために プロキシの設定をしてあるのですが、 社内のサーバに接続するときなど プロキシを経由してほしくないってことがあります。

$ wget --no-proxy http://.....

こんな感じでプロキシを使用しないオプションをつけます。

nginx1.2.0 を入れてみる

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

wget で標準出力に出力する

よく忘れるのでメモです。

$ wget -q -O - http://.....

こんな感じ。

Apache の rotatelogs コマンドを使ってみる

いつも Apache のログは logrotate でローテーションさせてるんですが PostgreSQL のように単体?でできないかなと思っていたら ちゃんとそういうコマンドがあるようです。

[参考]
Apache のログ管理 | バシャログ。

さっそく設定してみます。 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 の新機能 mod_sed を試してみる

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 に変わりました。

Google サイト内検索

なかのひと

Amazonアソシエイト