httpd@Docker

表題の通り、Dockerでhttpd(apache)を試す。

■ 環境

  • httpd 2.4.23
  • Docker for Mac 1.12.3
  • Mac OSX El Capitan

■ httpd

検索する。

$ docker search httpd
NAME    DESCRIPTION                      STARS     OFFICIAL   AUTOMATED
httpd   The Apache HTTP Server Project   800       [OK]
  :
$

公式のコンテナが存在するのでこれを使う。

library/httpd – Docker Hub
https://hub.docker.com/_/httpd/

$ docker pull httpd

起動してみる。

$ docker run -ti httpd
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message
[Wed Nov 23 19:19:07.569728 2016] [mpm_event:notice] [pid 1:tid 139874477700992] AH00489: Apache/2.4.23 (Unix) configured -- resuming normal operations
[Wed Nov 23 19:19:07.574845 2016] [core:notice] [pid 1:tid 139874477700992] AH00094: Command line: 'httpd -D FOREGROUND'

versionは”2.4.3“であることがわかった。よく見るwarningのメッセージも出てる。

ローカルのブラウザからアクセスするには下記のようにする。

$ docker run -ti -p 8000:80 httpd

HTMLファイルを表示させるのであれば下記。

$ docker run -ti -p 8000:80 -v `pwd`:/usr/local/apache2/htdocs httpd

画面が表示された。

以上。

■ 関連

nginxでserver_tokensを表示させない

表題の通り。

■ 環境

  • nginx 1.11.6

■ server_tokens

デフォルトでは下記のように情報を取得されてしまう。※下記は少々細工

Server: nginx/1.11.6 (Ubuntu)

これを表示したくない。nginxを使用しているのが表示されてしまうのはしょうがないのであるが、設定ファイルを1行追記するだけでnginxのversion等が消えるのであれば、設定しておいて良いであろう。

下記の設定を”nginx.conf“の”http“ディレクティブに追記する。

http {
  :
  server_tokens off;
  :
}

ブラウザでも確認ができるが、`telnet`で確認してみる。対象のnginxはDockerで起動したものである。

$ telnet localhost 10080
Trying ::1...
Connected to localhost.
Escape character is '^]'.
GET / HTTP/1.0

HTTP/1.1 200 OK
Server: nginx
Date: Wed, 23 Nov 2016 05:37:05 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Tue, 15 Nov 2016 15:11:46 GMT
Connection: close
ETag: "582b25b2-264"
Accept-Ranges: bytesWelcome to nginx!

  :

Connection closed by foreign host.
$

Server: nginx“だけになった。

以上。

■ 関連

Ubuntuにlsyncdを導入

久しぶりに表題を触ったのでメモ。

■ 環境

  • lsyncd 2.1.5
  • Ubuntu 14.04

■ lsyncd

サーバ間のリアルタイム同期を行いたかったので設定を入れ込んだ。使用しているサーバOSは”Ubuntu 14.04“。少し古いが仕方がない。

$ sudo apt-get install lsyncd

インストールされるものは下記のもののようである。

ubuntu@host001:~$ dpkg -L lsyncd
/.
/etc
/etc/init.d
/etc/init.d/lsyncd
/usr
/usr/share
/usr/share/doc
/usr/share/doc/lsyncd
/usr/share/doc/lsyncd/lsyncd.1.txt
/usr/share/doc/lsyncd/README.Debian
/usr/share/doc/lsyncd/changelog.Debian.gz
/usr/share/doc/lsyncd/examples
/usr/share/doc/lsyncd/examples/limagemagic.lua
/usr/share/doc/lsyncd/examples/lecho.lua
/usr/share/doc/lsyncd/examples/lrsync.lua
/usr/share/doc/lsyncd/examples/lrsyncssh.lua
/usr/share/doc/lsyncd/examples/lpostcmd.lua
/usr/share/doc/lsyncd/examples/lgforce.lua
/usr/share/doc/lsyncd/examples/lbash.lua
/usr/share/doc/lsyncd/copyright
/usr/share/man
/usr/share/man/man1
/usr/share/man/man1/lsyncd.1.gz
/usr/bin
/usr/bin/lsyncd
ubuntu@host001:~$

設定ファイルのサンプルはLuaで書かれているのだろうか。とりあえず起動スクリプトを確認すると、下記の記述があるのでディレクトリと設定ファイルを準備した。

CONFIG=/etc/lsyncd/lsyncd.conf.lua

元ファイルは”/usr/share/doc/lsyncd/examples/lrsync.lua“にした。

----
-- User configuration file for lsyncd.
--
-- Simple example for default rsync.
--
settings {
        logfile = "/var/log/lsyncd.log",
        statusFile = "/var/tmp/lsyncd.stat",
        statusInterval = 1,
}

sync {
        default.rsync,
        maxDelays = 1,
        source = "/path/to/directory/1/",
        target = "10.0.2.11:/path/to/directory/1/",
        rsync = {
                compress = false,
                _extra = {
                        "--delete",
                        "-a",
                }
        }
}

sync {
        default.rsync,
        maxDelays = 1,
        source = "/path/to/directory/2/",
        target = "10.0.2.11:/path/to/directory/2/",
        rsync = {
                compress = false,
                _extra = {
                        "--delete",
                        "-a",
                }
        }
}

あとはサービスで`lsyncd`を起動し、ログにも特に問題がなさそうなので、設定したディレクトリに試しにファイルを`touch`してみて、同期先サーバのディレクトリに同内容のファイルが同期されているかを確認した。

手っ取り早くサーバ間での同期をするのであれば、やはり”lsyncd“はとっても便利である。

以上。

Franz

表題のものが便利だと聞いてインストールしてみた。

■ 環境

  • Franz 4.0.4
  • Mac OSX El Capitan

■ Franz

franz-001

http://meetfranz.com/

仕事関連のやり取りを一元化したいのだが、現状では無理なのでSlackとChatworkを使用している。Slackはアプリで使用していて、ChatworkはChromeで利用しているのだが、たまにChatworkでの自分宛の会話を気付かずに放置してしまうこともある。Slackの方はそれなりに頻繁に確認しているのだが、Chromeは集中している時等に気がつかない。。というわけで話題のFranzをインストールしてみた。

1つのアプリで全部見られるのはとても便利だ。

どのようになったのかキャプチャを貼ろうかとも思ったのだが、全て公開できるものではなく全画面モザイクであったのでやめておく。

以上。

■ 関連

Slackの時間表記を24時間表記に

Posted in: Mac | Tagged:

AlpineLinuxでnode

表題の通り。「nodeの公式のコンテナがDebianで、、」というのも見かけて、Alpineでもあるんじゃない?と思ったので確認する。

■ 環境

  • Docker for Mac 1.12.3
  • Mac OSX El Capitan

■ Docker Hub

library/node
https://hub.docker.com/r/library/node/

ここの”Tags“から見ると、”alpine“とついているコンテナも存在する。

■ Alpine Linux

コンテナを起動してパッケージを検索してみる。

$ docker run -ti --rm alpine sh
/ # 
/ # apk update
fetch http://dl-cdn.alpinelinux.org/alpine/v3.4/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.4/community/x86_64/APKINDEX.tar.gz
v3.4.6-9-g93fc63d [http://dl-cdn.alpinelinux.org/alpine/v3.4/main]
v3.4.6-5-g027d8ce [http://dl-cdn.alpinelinux.org/alpine/v3.4/community]
OK: 5975 distinct packages available
/ #
/ # apk search node
nodejs-lts-4.6.0-r0
nodejs-lts-doc-4.6.0-r0
perl-tree-dag_node-1.29-r0
nodejs-lts-dev-4.6.0-r0
sngtc_client-1.3.7-r1
nodejs-dev-6.7.0-r0
nodejs-doc-6.7.0-r0
nodejs-6.7.0-r0
perl-tree-dag_node-doc-1.29-r0
/ #

ありそうである。

以上。