nginx で Basic 認証

ペラ1の HTML に Basic 認証をかけたくなったので nginx で Basic 認証をかけてみた。

htpasswdでファイルの生成

# funtoo にはデフォルト?では htpasswd がはいってなかった
# emerge -av apache-tools

# htpasswd -c FILENAME USERNAME
  =>パスワードを聞かれるので入力

# vim /path/to/nginx.conf
  • nginx.conf
server {
  auth_basic 'Basic';  
  auth_basic_user_file  /path/to/FILENAME;

  location / {
    ...
  }
}

結果

f:id:hrysd:20140212032336p:plain

UEFI Boot な Gentoo をインストール

Gnome 3.8 を使ってみたかったので funtoo を消して gentoo を入れてみましたのでメモ。

File system の作成

SystemRescueCD から起動し 既存のパーティションを gdisk, mkfs を駆使して綺麗にする。

で、以下のように作成した。

/dev/sda1 /boot/efi   vfat    noauto                          1 2
/dev/sda2   none        swap    sw                      0 0
/dev/sda3   /           ext4    discard,relatime,user_xattr 0 1

Kernel Build

  • File system のマウント -> chroot
# mount /dev/sda3 /mnt/gentoo
# mount -p /mnt/gentoo/boot/efi
# mount /dev/sda1 /mnt/gentoo/boot/efi
# cd /mnt/gentoo

# tarball のダウンロード、展開

# mount -t proc none proc
# mount --rbind /sys sys
# mount --rbind /dev dev

# cp /etc/resolv.conf etc

# env -i HOME=/root TERM=$TERM /bin/bash
# chroot . /bin/bash -l
  • fstab の編集
  • 適当な localtime のリンク
  • gentoo-sources に symlink のフラグをつける
# emerge --sync
# echo 'sys-kernel/gentoo-sources symlink' >> /etc/portage/package.use

emerge してカーネルをビルド。

ビルドしてできたイメージを毎回手で配置するのは不便なので以下のスクリプトを配置した。

/etc/kernel/postinst.d/efi

カーネルのコンフィグについて

ここではまったのが、Gnome 3.8 は systemd に依存していていて、カーネルをビルドする際にに以下の設定をするのを忘れるとうまく起動しなくて時間を浪費しました。

CONFIG_CMDLINE="root=/dev/sda3 init=/usr/lib/systemd/systemd"

chroot を抜け umount して再起動。

Gnome のインストール

Gnome 3.8 は stable だとインストールできなかったので、make.conf を変更する。

ACCEPT_KEYWORDS="amd64 ~amd64"

最後に

自分でインストールしてみて微妙に詰まったところをメモしてみた。

適当にやってたら案の定起動しなくて焦ったけど、便利なツールを駆使して復活できた。

カバンに常備しておくと便利そう...

curl で JSON等のファイルを POST

ファイル名の前に @ をつけてあげる。

curl -X POST -H "Content-Type: application/json" http://localhost:3000/comments -d @comment.json